In this chapter, you learned how to leverage buffering, windowing, throttling, and switching to cope with rapidly emitting Observables. Ideally, we should leverage Flowables and backpressure when we see that Observables are emitting faster than the Observers can keep up with, which we will learn about in the next chapter. But for situations where backpressure cannot work, such as user inputs or timer events, you can leverage these three categories of operations to limit how many emissions are passed downstream.
In the next chapter, we will learn about backpressuring with Flowables, which provides more proactive ways to cope with common cases of rapid emissions overwhelming Observers.