In the previous chapter, we learned about different operators that intercept rapidly firing emissions and either consolidate or omit them to decrease the number of emissions passed downstream. Another – arguably better – way to address the issue of when a source is producing emissions faster than the downstream can process them is to proactively make the source slow down and emit at a pace that agrees with the downstream operations. This last technique is especially important when we do not want to miss any of the emissions but do not want to consolidate them or cannot provide a large enough buffer to keep all the excess emissions in the queue.
Sending the request to slow down to the source is known as a backpressure, or flow control, and it can be enabled by using a Flowable instead of an Observable. This will be the main focus of this...