@Jonathan commented on @Jonathan’s file https://kotlinlang.slack.com/files/U8X1UM66N/F9N3LQYA1/suspend_handleaction__.kt: Sorry, I don't know what is the semantic. But I'm pretty sure the callback can be removed and the semantic kept. That's the point of coroutines. You may use suspending function, channels or broadcast depending on what you want to achieve.