AsyncSubject emits the last value (and only the last value) emitted by
the source and only after the source completes.
BehaviorSubject when subscribed, will emit the most recently emitted item by the source,
initialValue (as the seed) in case no value has yet been emitted, then continuing
to emit events subsequent to the time of invocation.
A concurrent subject is meant for imperative style feeding of events.
PublishSubject emits to a subscriber only those items that are
emitted by the source subsequent to the time of the subscription.
PublishToOneSubject is a monix.reactive.subjects.PublishSubject
that can be subscribed at most once.
ReplaySubject emits to any observer all of the items that were emitted
by the source, regardless of when the observer subscribes.