How (Not) to Use Reactive Streams in Java 9+
summary
Java 9+ exposes java.util.concurrent.Flow as SPI interfaces, not ready-made stream implementations, and a naïve iterator-backed Publisher fails the Reactive Streams TCK tests (15 run, only one initially passes). Building a correct Publisher requires handling Subscription request semantics, atomic termination, avoiding synchronous unbounded recursion (stack overflow) and long-demand overflow; fixes pass many TCK cases but corner cases remain. Integration demo wires Reactor → Akka Streams processor → RxJava subscriber via the JDK interfaces and it works.
AI-written summary · about
chapters (8)
- 0:00Introduction
- 3:20Reactive streams basics
- 11:05Naive publisher implementation
- 17:07Fixing publisher with TCK
- 21:35Publisher pitfalls
- 24:50JDK reactive streams as SPI
- 35:23Cross-library integration demo
- 39:17Key takeaways and resources
related talks
01h 28mIntroduction to Reactive Programming
35mFlow and the Future of Reactive Systems on the JVM
53mGetting into the Flow: building applications with Reactive Streams
47mReactive programming in Java
44mGet Ready for java.util.concurrent.flow!
01h 01mThirst Quenching Streams for the Reactive Mind
44mThirst-Quenching Streams for the Reactive Mind
49mThirst Quenching Streams for the Reactive Mind
