Talk given at Scala Days 2018, in Berlin: https://eu.scaladays.org/lect-6938-a-tale-of-two-monix-streams.html
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.