Spring: Blocking vs non-blocking: R2DBC vs JDBC and WebFlux vs Web MVC

This recent article on blocking versus non-blocking Java performance proves the right direction in which Java slowly moves: reactive programming. New R2DBC driver (reactive successor to JDBC) is at its early stage of development (lack of JPA support), but it already shows significant performance benefits of non-blocking computations.

Please keep in mind that it works only for high concurrent services. Otherwise, reactive programming brings more overhead than benefits. So don’t rush to rewrite everything asynchronously, if it is already running well. I am working with RxJava and can say for sure that this will become a standard in high-concurrent applications despite its high learning curve.