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.
How Libretto, a Scala DSL for concurrent programming, can be used for writing custom stream operators
We will look into three less-understood, yet (arguably) extremely useful constructs introduced in Cats Effect 3: Dispatcher, Supervisor, IOLocal
Let's go through some libraries from ZIO ecosystem that will allow us to implement API layer with ZIO HTTP
Let's go through some most common patterns when it comes to integrating Scala applications with Kafka