RxJava 4 is a reactive programming library for the JVM, implementing the Reactive Streams specification via `java.util.concurrent.Flow` (Publisher/Subscriber). It provides six core reactive types: `Flowable` (backpressured), `Observable` (unbounded), `Single` (single value), `Maybe` (optional value), `Completable` (completion signal), and the new `Streamable` (pull-based streaming with `CompletionStage`). The library offers a comprehensive set of operators (map, filter, flatMap, concat, merge, window, buffer, etc.) for composing asynchronous data flows, along with schedulers for threading control (`Schedulers.computation()`, `Schedulers.io()`, `Schedulers.virtual()` for virtual threads). It includes advanced features like operator fusion (`QueueFuseable`), backpressure strategies, and configurable operator parameters via immutable records. The architecture is modular: each operator is a final class extending the base reactive type with an inner observer/subscriber class managing state. External dependencies are minimal (only JDK standard library), and the library is designed for embedding in applications, frameworks, and Android. Key entry points are the static factory methods on `Flowable`, `Observable`, `Single`, `Maybe`, `Completable`, and `Streamable`. Data flows are constructed by chaining operators that transform and combine reactive streams, with lifecycle managed through `Disposable` and `Subscription` contracts.