RxJava utilizes a concept of reactive streams by introducing Observables, to which one or many Observers can subscribe to.
Dealing with possibly infinite streams is very challenging, as we need to face a problem of a backpressure.
It's not difficult to get into a situation in which an Observable is emitting items more rapidly than a subscriber can consume them.
We will look at the different solutions to the problem of growing buffer of unconsumed items.