The Observer pattern done right
ReactiveX is a combination of the best ideas from
the Observer pattern, the Iterator pattern, and functional programming
CREATE
Easily create event streams or data streams.
COMBINE
Compose and transform streams with query-like operators.
LISTEN
Subscribe to any observable stream to perform side effects.
Ubiquitous
ReactiveX is everywhere, and it's meant for everything.
FRONTEND
Manipulate UI events and API responses, on the Web with RxJS, or on mobile with Rx.NET and RxJava
CROSS-PLATFORM
Available for idiomatic Java, Scala, C#, C++, Clojure, JavaScript, Python, Groovy, JRuby, and others
BACKEND
Embrace ReactiveX's asynchronicity, enabling concurrency and implementation independence
Better codebases
Functional
Avoid intricate stateful programs, using clean input/output functions over observable streams.
Less is more
ReactiveX's operators often reduce what was once an elaborate challenge into a few lines of code.
Async error handling
Traditional try/catch is powerless for errors in asynchronous computations, but ReactiveX is equipped with proper mechanisms for handling errors.
Concurrency made easy
Observables and Schedulers in ReactiveX allow the programmer to abstract away low-level threading, synchronization, and concurrency issues.