Java 8’s Streams API made pipelines readable. But as we explored async workloads, RxJava gave us even more control.
Differences I felt:
- Streams = pull-based, synchronous
- Rx = push-based, async-ready
We used both — Streams for in-memory transformations, Rx for UI + backend coordination.
This was my first real embrace of reactive thinking in production.