What streaming library do you use in Scala?
Streaming Libraries Shootout
Most modern server development stacks include a local streaming library. Such libraries greatly simplify handling the load and concurrency of incoming requests by leveraging tools such as throttling, fan out and back pressure control.
In this talk I will compare two of the most popular streaming libraries in Scala: Akka Streams and Monix.
Akka Streams is a library built on top of actors, and integrates seamlessly with Akka Http. As such it is more likely to be used by people already using Akka as a framework for their service. Its philosophy is of providing a toolkit for constructing building blocks, from which more complex streams can be built.
Monix is a library that implements the Reactive Streams API, and exposes a collection like interface through its Observable and Task types. Its streams are more opaque, and also simpler to use.
While the projects differ somewhat in goals and size, a comparison is enlightening as to the tradeoffs made by the library authors: what’s missing in each library, and how involved is adding the missing functionality, and when should you use each.