Learning reactive programming and rxjava

Learning reactive programming and rxjava

As part of a project for work, I needed to design an architecture for a system that could handle an infinite stream of asynchronous "events" (basically, actions triggered by end-users that my system needed to respond to).  Since we were anticipating a high volume of events, it was important that the system be able to operate in a multi-threaded environment.  Additionally, we wanted the system to be modular and extensible so that as functionality was added or modified (for example, adding a new consumer of events, or replacing an existing persistent storage mechanism with another one), the architecture would remain unchanged...