Introduction
The Reactive Streams specification presents an ongoing development within software architecture, referred to as Reactive Systems. These systems, ideally, have the following advantages:
- A faster response
- More controlled responses in relation to one another
- Increased reliability
A natively supported API for developing Reactive Systems or applications was introduced in Java 9, called Flow.
The Java 9 Flow API was not intended to compete with the already developed, highly adopted, and appreciated reactive libraries or APIs available out there. The biggest reason for the advent of the Flow API was the need for a common denominator amongst these libraries; to ensure that the core of reactive programming would be the same regardless of which implementation you use. That way, you can easily translate from one implementation to another.
To achieve this, the Java Flow API adheres to the Reactive Streams specification—the specification that most...