Avoid mistakes in API design, implementation and evolution with Smithy
Most back-end projects eventually reach a point when they have to define an API. We implement their routes, document them, sometimes we write a client. We do essentially the same work multiple times - each view of an endpoint contains the same path, and yet we don't have a "single source of truth".
In this talk, I'll show how Smithy (https://smithy.io) and smithy4s enable defining an API in a single place, and how they make it easy to build its server, client, and even a CLI - in a Scala-friendly, tooling-compatible way.
Understanding the exact properties that disqualify a data type from being an instance of a given abstraction turns out to be surprisingly helpful
I'll share a handful of techniques that can help you avoid runtime errors and shift them to the realm of compile time
Scala is improving rapidly. This session will give you the perspective of someone in the middle of these changes.