zsmb.coEst. 2017

Asynchronous Programming With Kotlin Coroutines

2024-05-22 • Copenhagen, Denmark • Event page

This was a joint workshop led by Sebastian Aigner (website, Twitter, LinkedIn).

In this workshop, you’ll learn everything you need to know about how to be productive with coroutines in Kotlin. We’ll start with the basics of asynchronous programming, its differences from blocking code, and the concepts of suspending functions and coroutines. We’ll explore coroutine contexts, concurrent decomposition of work via deferreds, and structured concurrency with coroutine scopes.

The second part of the workshop will be devoted to Kotlin Flows. We’ll study how Kotlin Flows are designed on a basic level, learn the difference between hot and cold flows, discuss their typical usage patterns, and explore how they incorporate ideas from reactive streams. To deepen our understanding, we’ll also take a peek at some of the implementations behind flows and collectors. Throughout, we’ll see how they help you in writing safe and reliable concurrent systems, and how modern applications can use them to work with asynchronous streams of data, manage system state, and broadcast events.

Through this workshop, you’ll enhance your coroutines-related vocabulary, understand how to spot and avoid common problems, and be able to effectively and confidently use coroutines and flows in your own projects.