Coroutine Gotchas - Bridging the Gap between Coroutine and Non-Coroutine Worlds
Coroutines are a wonderful way of writing asynchronous, non-blocking code in Kotlin. Think of them as lightweight threads, because that’s exactly what they are. Lightweight threads aim to reduce context switching, a relatively expensive operation. Moreover, you can easily suspend and cancel them anytime. Sounds great, right?
A group of Kotlin enthusiast joined KotlinConf back in December last year in Copenhagen. We invited this group to share their learnings for this conference. Two of the participants are sharing their takeaways from KotlinConf with you.
Kotlin was first used by our teams a couple of years ago. It had an interesting start that shows how we adopt technology in general. In different feature teams a group of software engineers explored their own use cases for Kotlin.
We share our experience on how we built a conversational bot with Finite State Machines. It turned out to have its own shortcomings so we built a (Domain-Specific Language) DSL to design our flows and called it “Sushi”.
Sushi is a more flexible and straight-forward tool to build complicated flows.