Flowable can be regarded as a special type of Observable (but internally it isn't). It has almost the same method signature such as the Observable as well.
The difference is that Flowable allows you to process items that emitted faster from the source than some of the following steps can handle. It might sound confusing, so let's analyze an example.
Assume that you have a source that can emit a million items per second. However, the next step uses those items to do a network request. We know, for sure, that we cannot do more than 50 requests per second:
That poses a problem. What will we do after 60 seconds? There will be 60 million ...