Spring WebFlux is asynchronous and is built on reactive streams foundation in JVM. Just by switching to a Kotlin programming language, we already gain ability to write more readable and more concise code. What more to wish for? However, Kotlin has built-in support for asynchronous programming with Kotlin Coroutines that are designed to allow for even simpler and easier-to-understand code. We'll witness that reduction in complexity that coroutines bring and dissect what kind of magic is working behind the scenes to make it possible, how it all integrates with Spring, what the best practices are, and how can you integrate coroutines with any kind of asynchronous code you write.