Could you clarify the following things — why are
exist all together?
When only Subject with the buffer parameter would be enough? After all, only this (emit last amount) they differ.
It might be: (param is Buffer size)
What reasons?
1) Subject doesn't even hold values. All the values emitted before subscribing will not be seen by subscribers.
2) BehaviorSubject holds the last value and must hold a value. Subscribers will always get the last emitted value.
3) ReplaySubject holds x values, but doesn't have to. Subscribers will get last x values if they were emitted before. Otherwise they will get 0 - x values.
They are different and can not be changed between themselves without losing functionality.