Basically most frameworks are low-level NIO (netty, or xio, or smth else), then some HTTP support, and then routing and services. Most frameworks are basically identical and differ only in a way of how you setup things, and a number of tweaks here and there.