A channel is meant for imperative style feeding of events.
Asynchronous implementation of the Observable interface
The Observer from the Rx pattern is the trio of callbacks that get subscribed to an Observable for receiving events.
A Subject
is a sort of bridge or proxy that acts both as an
Observer and as an Observable and that must respect the contract of both.