Reactive streams (http://www.reactive-streams.org/) define a mechanism to provide asynchronous stream processing with non-blocking back pressure.
Reactive streams are based on the following three elements:
- A publisher of information
- One or more subscribers of that information
- A subscription between the publisher and a consumer
The reactive streams specification determines how these classes should interact among them, according to the following rules:
- The publisher will add the subscribers that want to be notified
- The subscriber receives a notification when they're added to a publisher
- The subscribers request one or more elements from the publisher in an asynchronous way, that is to say, the subscriber requests the element and continues with the execution
- When the publisher has an element to publish, it sends it to all its subscribers that have requested an element...