The Various Kinds of IO – Blocking, Non-Blocking, Multiplexed and Async
There are three main kinds of async IO.* Event driven with callbacks (`on data`, `on error`, and so on).* Stackless coroutines (async/await).* Stackful coroutines (no direct semantic changes to code required).Personally, I like stackful coroutines because the concurrency model has minimal effect on the structure of the code, i.e. it's possible to retrofit existing code without change.