Asynchronous Programming with Kotlin
This workshop covers asynchronous programming in Kotlin using coroutines. It starts with basics of asynchronous programming and its differences from blocking code and introduces concepts of suspending functions and coroutines. Dealing with the ecosystem of blocking code on JVM is covered in depth as well as best practices for managing cancellation of asynchronous operations. The workshop also covers more advanced topics of concurrent decomposition of work via futures, deep dive into coroutine contexts and includes an overview of Communication Sequential Process (CSP) approach and channels.