Introduction to RxJava
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...