Roman Elizarov, a Kotlin language lead, writes about Kotlin coroutines and flows, structured concurrency, null handling and language design.
Commenters cite his posts on function coloring, Kotlin flows and callbacks as authoritative explanations of how Kotlin handles asynchronous code.
An interesting topic related to this is co-routines in Kotlin which implements this for Kotlin. This recent article by Roman Elizarov https://medium.com/@elizarov/callbacks-and-kotlin-flows-2b53aa2525cf outlines how they are supporting reactive streams on top of co-routines using something called Flow.
If you need a more gentle introduction to co-routines and why he picked them for Kotlin, his talk at GOTO last month is pretty interesting: https://www.reddit.com/r/Kotlin/comments/cf56gt/serverside_kotlin_with_coroutines_with_roman/
Plenty of other languages including a large percent of recent languages have the return type on the right.
Haskell, Visual Basic, Scala, F#, Go, (Rust), Kotlin, TypeScript, Swift.
Even c++ allows you to put return types on the right. Why? Because putting the types on the right allows return type deduction. I think it's better to have a single syntax (all types on the right) rather than 2 syntaxes like c++ has.
https://medium.com/@elizarov/types-are-moving-to-the-right-22c0ef31dd4a
Kotlin has solved colouring before loom ->
https://medium.com/@elizarov/how-do-you-color-your-functions-a6bb423d936d
Go was the first to solve colouring but they have it seems a less type safe solution