What's different in 2.0 describes the differences between Observable and Flowable. However, Observable is mostly described in terms of features that it lacks in comparison to Flowable. There is only one distinguishing feature of Observable mentioned:
Using
Observablehas lower overhead in general thanFlowable.
But even this seems to be contradicted by the suggestion that Observable is preferable for small numbers of elements and is more likely to lead to an OutOfMemoryError if tasked too heavily. This seems to suggest that Flowable is generally more efficient.
The other thing I find confusing is that if Observable is preferred for use cases with fewer than 1K elements, and Flowable is preferred for use cases with over 10K elements, then use cases having between 1K and 10K elements are a gray area.
Is there a more technical explanation of the differences between Observable and Flowable? Especially one that suggests a practical heuristic for deciding which to use in the gray area between 1K and 10K elements, or when the number of elements is unknown or may change.
Related: This Q&A only quotes the documentation without further explanation.