Overview
Explore Kotlin coroutines for asynchronous and concurrent programming in this comprehensive conference talk. Dive into the world of HTTP APIs and microservices, where orchestrating interactions with external systems is crucial. Learn why traditional synchronous models are inadequate for platforms with costly threads or special non-blocking threads. Discover various programming models for handling asynchronicity, from callbacks to reactive streams. Understand the concept of Future and its widespread adoption across multiple platforms. Examine Kotlin's unique approach to addressing asynchronous programming challenges through coroutines and suspending functions. Start from the basics, learning how suspending functions transform callbacks into suspension points without disrupting control flow. Progress to creating and initiating coroutines as instances of suspending functions, and see how async-await constructs can be implemented as library functions. Gain insights into structured concurrency for managing and coordinating coroutines, with a focus on cancellation. Explore the relationship between coroutines and threads, including thread scheduling and context propagation. Cover topics such as the importance of asynchronous programming, various asynchronous programming models, Kotlin coroutines implementation, coroutine scopes, parent-child coroutine relations, concurrency management, and resource handling.
Syllabus
Intro
Why Asynchronous?
Callbacks, Futures, Observables
The challenge
Kotlin Coroutines
A Spring controller
Coroutine Scope
Parent-child coroutine relations
What is a scope?
How about concurrency?
Resources
Taught by
NDC Conferences