Back To Schedule
Hall 2 - Foundations

Thursday May 17th, 11:30-12:15

A Tale of Two Monix Streams

About this Session

Monix started as a project exposing an idiomatic, opinionated and back-pressured ReactiveX implementation for Scala, but has grown beyond those boundaries to fully incorporate the lessons of functional programming.

I'm presenting a contrast between the Observable data type, which works with an underlying push-based and very efficient protocol and the new Iterant data type, a generic, purely functional, pull-based streaming alternative coming in Monix 3.0.

Besides outlining the direction of where Monix is going, the presentation is a lesson in functional programming design for FP enthusiasts.

Required knowledge

Attendees need to have a good grasp of the Scala language. Some knowledge about FP libraries such as Cats is nice to have, but not required.

Learning objectives

Learning objectives are to present where the Monix library is going and to teach real-world techniques for functional programming design that have helped in building the next iteration of the library.


Alexandru Nedelcu

Full-stack developer, with a specialty in building low-latency, reactive and scalable web-services. Alex loves functional programming and is the Monix developer, a Typelevel member, a Scala enthusiast ever since 2011 and a Haskell apprentice. He likes building systems that serve users and likes to meet people over coffee or beer. You can find his online persona at: