Akka Streams and Monix are the most popular and at Scalapeño, Software Engineer, Gideon Caller delved into them both! Find out the comparisons and how they can benefit you in your programming.
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.