Why Flowables not Observables
Conceptual separation. I would go with Flowable just because it can do all the other types. The community, however, strongly reflected the basic behavioral property of the individual types: Single , Maybe , Completable ...
The monitored interface is largely a subset of Flowable.
This is a common point of view from people who are probably not programmed daily. Unfortunately, for them, the system and type language (Java) do not allow such high-level abstractions to easily or simply specialize.
In addition, the implementation of backpressure requires specific algorithms and building blocks and can become quite complex. I recommend that you check the difference between one of the more complex operators: Flowable.flatMapIterable vs Observable.flatMapIterable .
Why don't they implement a common interface so that we can use Flowable as Observable directly
Flowable implements Reactive-Streams interfaces, and therefore we cannot just declare Subscriber extends Observer and Subscription extends Disposable .
Also, sometime at the beginning of v2, Observable implemented by Publisher and caused a lot of ambiguity, and manual casting would be a major problem for library users.
source share