Buffering...
- Main observable will continue to publish regardless of remote client connection status.
-Listener will listen to underlying 'exception' to catch 'error' from connection. If remote connection is down, Buffer service will start to store the messages, based on the signal provided from State listener OBS.
-When remote client resume connection, all the buffered messages will be release into the existing stream, which is the aforementioned main observable, mixing it with the current stream of messages being published to the client side.