Concatenation is remarkably similar to merging, but with an important nuance: it emits items of each provided Observable sequentially and in the order specified. It does not move on to the next Observable until the current one calls onComplete(). This makes it great to ensure that the merged Observable starts emitting in a guaranteed order. However, it is often a poor choice for infinite Observable, as it will indefinitely hold up the queue and forever leave the Observable that is next in line waiting.
We will cover the factories and operators used for concatenation. You will find that they are much like the merging ones, except that they have sequential behavior.
You should prefer concatenation when you want to guarantee that the concatenated Observable instances fire their emissions in the specified order. If you do not care about ordering...