“Grokking” Kotlin Coroutines: Why suspend exists

A practical mental model for understanding async work, threads, callbacks, Rx, and why Kotlin suspend exists.