It seems like such a waste to use async libraries in many Java applications and I wince at the thought of a mainstream application framework adopting CPS. In the techempower benchmarks Netty beats Servlet by only like 3%. Maybe if you are serving millions of connections you will get your money's worth but I think a synchronous API in the application stack is the right answer for almost everything. Even Play framework with Scala which takes most of the edge off is still needlessly complex compared to say, Dropwizard code. You have to remember not to block, and be sure all your libraries don't block either. Why pick up that burden if it is not totally necessary?