ReactiveX/RxJava
7 articles
Prerequisites
- ›Basic familiarity with reactive programming concepts (Observable, subscribe, operators)
- ›Java module system basics (module-info.java)
RxJava from the Inside: Architecture Overview and How to Navigate 877 Source Files
A comprehensive map of the RxJava codebase, covering project structure, the public/internal API boundary, the 5+2 core reactive types, naming conventions, and build infrastructure.
The Subscribe Chain: How Every RxJava Operator Actually Works
Traces the complete subscribe flow from user call through plugin hooks to subscribeActual(), dissecting the operator decorator pattern using FlowableMap as the canonical example.
The Engine Room: Drain Loops, Queue Fusion, and Lock-Free Concurrency
Explores the WIP drain loop pattern, QueueFuseable operator fusion protocol, lock-free SPSC queues, and ConditionalSubscriber optimizations that power RxJava's performance.
Schedulers Unmasked: Thread Pools, Virtual Threads, and Time Control
Dissects RxJava's threading abstraction from Scheduler/Worker base classes through ComputationScheduler, CachedScheduler, DeferredExecutorScheduler (virtual threads), and TestScheduler.
Backpressure: How Flowable Keeps Fast Producers from Overwhelming Slow Consumers
Explains the request(n) protocol, BackpressureHelper's CAS arithmetic, the five BackpressureStrategy options, prefetch/limit patterns, and FlowableFlatMap's multi-source request accounting.
RxJava 4.x: Streamable, Virtual Threads, and the Future of Reactive Java
Covers Streamable<T> async enumerables, VirtualGenerator/VirtualEmitter for imperative virtual-thread code, sealed types, records, and the migration to java.util.concurrent.Flow.
Keeping 54,000 Lines Honest: RxJava's Testing and Validation Architecture
Examines TestSubscriber, TestScheduler, the 24 validator meta-tests, Reactive Streams TCK compliance, JMH benchmarks, and the CI pipeline that ties it all together.