How reactivex/rxjava works
RxJava is a JVM reactive-programming library for composing asynchronous and event-based sequences. Users assemble a flow from a source and operators, subscribe a consumer, then receive items or terminal signals; Flowable adds backpressure, while Streamable provides blocking handoff and natural backpressure. The graph preserves the documented flow types, scheduling, parallel processing, replay, and plugin hooks. Relationships are limited to the README’s workflow statements and explicit source references; unsampled implementations are represented only where the tree supports their paths.
Main entry points: operators Operator Implementations · Flowable.java Flowable · RxJavaPlugins.java Global Hooks · Maybe.java Maybe
Components 19
Flow APIs
- Flowable
src/main/java/io/reactivex/rxjava4/core/Flowable.java - Observable
src/main/java/io/reactivex/rxjava4/core/Observable.java - Single
src/main/java/io/reactivex/rxjava4/core/Single.java - Maybe
src/main/java/io/reactivex/rxjava4/core/Maybe.java - Completable
src/main/java/io/reactivex/rxjava4/core/Completable.java - Streamable
src/main/java/io/reactivex/rxjava4/core/Streamable.java - Operator Implementations
src/main/java/io/reactivex/rxjava4/internal/operators
Execution and Flow Control
- Scheduler API
src/main/java/io/reactivex/rxjava4/core/Scheduler.java - Scheduler Factory
src/main/java/io/reactivex/rxjava4/schedulers/Schedulers.java - Parallel Flows
src/main/java/io/reactivex/rxjava4/parallel/ParallelFlowable.java
Replay and Hooks
- Replay Processor
src/main/java/io/reactivex/rxjava4/processors/ReplayProcessor.java - Replay Subject
src/main/java/io/reactivex/rxjava4/subjects/ReplaySubject.java - Global Hooks
src/main/java/io/reactivex/rxjava4/plugins/RxJavaPlugins.java
Shared Runtime
- Disposal
src/main/java/io/reactivex/rxjava4/disposables/Disposable.java - Callback Helpers
src/main/java/io/reactivex/rxjava4/internal/functions/Functions.java - Composite Errors
src/main/java/io/reactivex/rxjava4/exceptions/CompositeException.java - Scheduler Metadata
src/main/java/io/reactivex/rxjava4/annotations/SchedulerSupport.java
Other components
- Application Developer
- Subscriber / Consumer
Connections 23
- Application Developer → Flowable: assembles flow
README.md - Application Developer → Observable: assembles flow
README.md - Application Developer → Single: assembles flow
README.md - Application Developer → Maybe: assembles flow
README.md - Application Developer → Completable: assembles flow
README.md - Application Developer → Streamable: assembles flow
README.md - Flowable → Operator Implementations: composes with
README.md - Observable → Operator Implementations: composes with
README.md - Single → Operator Implementations: composes with
README.md - Maybe → Operator Implementations: composes with
README.md - Completable → Operator Implementations: composes with
README.md - Streamable → Subscriber / Consumer: hands off items
README.md - Operator Implementations → Subscriber / Consumer: delivers signals
README.md - Flowable → Subscriber / Consumer: subscribes to
README.md - Flowable → Parallel Flows: supports parallel
src/main/java/io/reactivex/rxjava4/parallel/ParallelFlowable.java - Application Developer → Scheduler Factory: selects scheduler
README.md - Scheduler Factory → Scheduler API: provides schedulers
src/main/java/io/reactivex/rxjava4/schedulers/Schedulers.java - Scheduler API → Global Hooks: decorates tasks
src/main/java/io/reactivex/rxjava4/core/Scheduler.java - Flowable → Global Hooks: assembly hooks
src/main/java/io/reactivex/rxjava4/plugins/RxJavaPlugins.java - Replay Processor → Global Hooks: uses hooks
src/main/java/io/reactivex/rxjava4/processors/ReplayProcessor.java - Maybe → Global Hooks: assembly hooks
src/main/java/io/reactivex/rxjava4/core/Maybe.java - Completable → Global Hooks: assembly hooks
src/main/java/io/reactivex/rxjava4/core/Completable.java - Disposal → Callback Helpers: uses helpers
src/main/java/io/reactivex/rxjava4/disposables/Disposable.java