Java 8 does not have any built-in support for reactive programming. A number of frameworks provide reactive features. We will discuss Reactive Streams, Reactor, and Spring WebFlux in subsequent sections.
Reactive Streams is an initiative to provide a standard for asynchronous stream processing with non-blocking back pressure. This encompasses efforts aimed at runtime environments (JVM and JavaScript) as well as network protocols.
A few important things to note are as follows:
- Reactive streams aim to define a minimal set of interfaces, methods, and protocols to enable reactive programming
- Reactive streams aim to be a language-neutral approach with implementation in the Java (JVM-based) and JavaScript languages
- Multiple transport streams (TCP, UDP, HTTP, and WebSockets) are supported
Maven dependencies for Reactive Streams are shown as follows:
<dependency> <groupId>org.reactivestreams</groupId> <artifactId>reactive...