When a program must process many concurrent data streams, there is a number of general techniques available: for example you may use push or pull, and you may choose to use blocking threads or go asynchronous. In this talk we explore the design space and highlight a number of possible desirable properties of streaming systems. We show where the approach standardized in the Reactive Streams initiative falls in this spectrum, and look at a practical example using Akka Streams on the JVM.
Arnout is a member of the Akka team at Lightbend, responsible for the Open Source Akka toolkit for building reactive, concurrent and distributed applications more easily on the JVM. When he is not hacking on Akka he is into secure systems, playing music and experimenting with generative art.