We can consider RxJava as a low-level framework, containing specific implementations of reactive concepts. But how do architectural frameworks, such as Spring, think about reactive structure in enterprise environments?
The traditional web framework developed in Spring Suite, Spring Web MVC, was built on top of the Servlet API and servlet containers, mainly Tomcat. The reactive implementation, named Spring WebFlux, was introduced in Spring 5.0. It fully supports Reactive Streams, non-blocking, and runs on different server types:
- Traditional, such as a Servlet 3.1+ container (Tomcat)
- A new performant web server based on Java NIO, such as Undertow
- Asynchronous event-driven network servers, such as Netty ...