RxJava is a Reactive Extensions implementation for Java environment.
The library utilizes a combination of functional and reactive techniques that can represent an elegant approach to event-driven programming – with values that change over time and where the consumer reacts to the data as it comes in.
RxJava Basics
RxJava Advanced
RxJava Integration with Other Libraries