The advantage of chained stacklets (Go-style) is that they have quite low overhead for invocation of suspending methods that do not suspend and there is low heap allocation pressure (because stacklets are allocated in 4k chunks). That disadvantage, is that they are too heavy-weight for “small” coroutines (think synchronous stuff like generate/yield and consider that a million of 4k chunks already consumes 4G of memory). Kotlin’s coroutines are lighter, but come with more allocations for deep suspending methods (there is quite a room for further optimisations, though). It is all in theory, though. In practise, it all depends on your application.