RxJava
Reactive Extensions for the JVM
RxJava is a lightweight Java VM implementation of ReactiveX (Reactive Extensions). This is a library for the composition of asynchronous and event-based programs through observable sequences. It helps you write cleaner and simpler code by providing methods for solving problems quickly, and is easy to maintain and understand.
RxJava works by extending the observer pattern in order to support sequences of data/events.