Reactive Streams
Components of a Reactive Stream:
- Publisher: Publishes data to stream
 - Subscriber: Consumes data from the stream.
 - Processor: Acts as both a publisher and a subscriber, obeying the contract for each.
 - Subscription: Connects a subscriber to a publisher to initiate a message flow.
 
Akka Streams is built on these concepts but provides a different API (albeit is possible to bridge).