Estimated reading time: 1 minute
Ktor makes heavy use of Kotlin 1.3 stable coroutines.
Coroutines are a basic Kotlin mechanism (also called
suspend functions), that among other things allows to do asynchronous programming that is linearly written like plain code
instead of the traditional callback-based approach.
Other modern languages expose a similar, but more specific mechanism called await-async. The Kotlin approach is more generic and flexible and it is less verbose and less error-prone
since the default behaviour when calling an asynchronous (
suspend) function is to suspend the caller too.
Ktor uses a standard library from JetBrains called kotlinx.coroutines.
Since Ktor is fully asynchronous and intensively uses coroutines, it is a good idea to familiarize yourself with those concepts.