Concatenation is remarkably similar to merging, but with an important nuance: it will fire elements of each provided Observable sequentially and in the order specified. It will not move on to the next Observable until the current one calls onComplete(). This makes it great to ensure that merged Observables fire their emissions in a guaranteed order. However, it is often a poor choice for infinite Observables, as an infinite Observable will indefinitely hold up the queue and forever leave subsequent Observables 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 the sequential behavior.
You should prefer concatenation when you want to guarantee that Observables fire their emissions in order. If you do not care about ordering, prefer merging instead.
...