In the RxJava world, we have four main players:
Observables and Subjects are the two "producing" entities. Observers and Subscribers are the two "consuming" entities.
When we have to execute something asynchronously with a lite level of complexity, Java provides classic classes, such as
CompletableFuture, to approach the problem. When the level of complexity goes up, these solutions tend to become messy and hard to maintain. Most of all, they cannot be chained.
RxJava Observables were designed to solve these issues. They are flexible and easy to use, they can be chained, and they can work on a single result routine or, even better, on sequences. ...