RxJS familiarities and differences

Some differences to RxJS and the motivation behind creation of this library.

In comparison to RxJS, Hullo looses schedulers, but gains pressure control.

In RxJS you can pace messages by attaching an alternative scheduler to a subject. Hullo approach is to have a subscriber posting it's readiness to receive new message - every subscriber can do that independently. That caused a slight change in interface:

  • Subscriber's next and complete can return either nothing or a Promise of successful processing received message

  • Observer's next and complete return a Promise of successful processing delivered message

You probably noticed error is missing from next and complete functions set. That's not a mistake. Due to additional challenges in typing and keeping focus on resolving failures state resulted in a general design direction of Hullo, were error's should be treated as such only in critical cases like edge communications parsing errors / environmental failures. Such situations should result in a fast and complete failure of entire program, so there's no decision, no interaction made in erroneous state. In other cases, controllable failures should be communicated as messages and handled as soon as possible.