By now, many (advanced) Kotlin developers know they can use Kotlin Coroutines to perform asynchronous, concurrent tasks in an idiomatic way. However, the Coroutines library contains so much more stuff that, in my experience, people are barely using (if they are even aware of them)!
Let’s have some fun with Coroutines, playing around with the more advanced features, like Channels, Flows, Actors, Supervision Scopes, (preventing) Cancellation, and… ThreadLocals?! Besides having fun, I hope to inspire you, so that you will see new use cases for coroutines in your daily work. Let’s learn together!