Flowable
We may call Flowables a backpressured version of Observables. Probably, the only difference between Flowables and Observables is that Flowable takes backpressure into consideration. Observable does not. That's it. Flowable hosts the default buffer size of 128 elements for operators, so, when the consumer is taking time, the emitted items may wait in the buffer.
Note
Note that Flowables were added in ReactiveX 2.x (RxKotlin 2.X), and the previous versions don't include them. Instead, in previous versions, Observables was retrofitted to support backpressure that caused many unexpected MissingBackpressureException
.
Here is the release note if you are interested:https://github.com/ReactiveX/RxJava/wiki/What%27s-different-in-2.0#observable-and-flowable
We had a long discussion so far; let's now try our hands on code. At first, we will try a code with Observable, and then we will do the same with Flowables to see and understand the difference:
fun main(args: Array<String>) { ...