To me, the real zen of async IO is it's all about scaling when you're waiting. And also things like locks, mutexes, and stuff don't work in this world because it's about what thread has access. There's a cool place called AI awesomeyncIO by Timo for your is pretty cool. I end up spending so much time looking at and building things that I'm actually not working that high on the stack to make use of them.