RxJava
is an implementation of Reactive Extensions (ReactiveX
) on JVM, which was developed by Netflix and is used to compose asynchronous event processing that reacts to an observable source of events.
The framework extends the Observer
pattern by allowing us to create a stream of events that could be intercepted by operator (input/output) functions that modify the original stream of events and deliver the result or an error to a final Observer
. This framework abstracts away concerns about things such as low-level threading, synchronization, thread safety, concurrent data structures, and non-blocking I/O.
There are three main basic building blocks that interact with each other in RxJava
processing, the Observable
, the Observer
, and the Subscriber
.
An Observable
is an entity that emits a sequence of events (zero or more events) of the generic type T (such as String or any Java type) at any point in time, or emits a Throwable
when a failure occurs during the event processing...