@thomasnield I think the way to think of a fiber is as a job, where the platform provides us with a single static job queue, and threads are the things executing those jobs. Given such a system, one job might in turn enqueue three more jobs. With some compiler magic, you can actually get one method spread into multiple sequential jobs, each one enquing the next, which is where the coroutine compiler support in kotlin comes in.