Hey guys, I've had some time to think about both aproaches Jotschi and I are pursuing and have come to this conclusion:
Each approach has flaws but combined can be something really special. First, I made a list of the the pros/cons.
Async-Await: In this approach, when async(X) is called, we offload X to a virtual thread that executes on the same event-loop (platform) thread.
Pros:
- Works with the existing netty event-loop on platform threads.
- Since await returns Future, it can be integrated into existing Vertx codebases incrementally.
- You can call any plain blocking library within async() without blocking the event loop threads