- You are dealing with over 10,000 elements and there is opportunity for the source to generate emissions in a regulated manner. This is especially true when the source is asynchronous and pushes large amounts of data.
- You want to emit from IO operations that support blocking while returning results, which is how many IO sources work. Data sources that iterate records, such as lines from files or a ResultSet in JDBC, are especially easy to control because iteration can pause and resume as needed. Network and Streaming APIs that can request a certain amount of returned results can easily be backpressured as well.
Note in RxJava 1.0, the Observable was backpressured and was essentially what the Flowable is in RxJava 2.0. ...