Understanding the Reactive Streams API
Before we jump into the design of the Akka Streams API, it's important for us to take a quick look at the Reactive Streams API, which is where Akka Streams gets its roots. The Reactive Streams API started out as an effort to design a standardized way of handling asynchronous stream processing with nonblocking back-pressure. Their main focus was to build a nonblocking, event-driven API, and therefore making it reactive, to govern the interchange of streaming data across asynchronous processing stages or boundaries.
The Reactive Streams group is made up of contributors from companies such as Twitter and Netflix, and includes the team from Akka too. They set out to define a very low-level API that can serve as the foundation for other streaming APIs, such as Akka Streams, to be built on top of. The Java API was designed as a mechanism to process a potentially unbounded number of elements in sequence, asynchronously passing elements between components-with...