Intermezzo: Reactive Streams
• a.k.a. java.util.concurrent.Flow (since JDK 9)
• Interfaces: j.u.c.Flow.{Publisher, Subscriber, Subscription, Processor}
• Some key prior work:
• Observer design pattern (Gamma et al. 1994)1
• Reactive Extensions (Erik Meijer 2012)2
• Key innovation of Reactive Streams: backpressure control
2Erik Meijer, Your mouse is a database, Commun. ACM 55(5) (2012) 66–73.
1Gamma, Erich, Richard Helm, Ralph Johnson, and John Vlissides, Design Patterns:
Elements of Reusable Object Oriented Software, Addison-Wesley Professional, 1994
Composition of
observable streams using
higher-order functions