Coroutines are an experimental feature of Kotlin that allow you to write asynchronous code sequentially. Their experimental nature means that this feature is still under development but that we can use it in production. The concept of coroutines is based on suspended computations that don't block a thread.
Coroutines in Kotlin are based on three things:
- Language-level support (the suspend keyword)
- Low-level core API from the Kotlin standard library
- High-level API