The Akka Streams API
Akka Streams is an API that is built on top of the Reactive Streams core Java library. This, somewhat, newer API defines its own components, which we will discuss shortly, to represent stream processing versus directly exposing the Reactive Streams API. This library handles all of the complicated concerns of back-pressure, and helps you to better focus on the real problems, such as how you'll process your data.
Being built on top of Reactive Streams, Akka Streams is fully interoperable (pluggable) with any other Reactive Streams compatible library, such as Slick or RxJava. This means that you can easily incorporate data processing steps into your Akka Stream flows that are not themselves built from Akka Streams. The possibilities of building back-pressure-based streams on top of Akka Streams can be endless as more and more Java/Scala libraries start to adopt the Reactive Streams protocol.
Throughout the next few sections, I'll break down the main components from the Akka...