There&#x27;s also a lot of similarity with Rx.JS and observable based (aka &quot;Reactor&quot;) patterns:<p><pre><code>    Rx.Observable.fromTime().subscribe(tick)

    Rx.Observable.fromSocket(mySocket).subscribe(handleEvent)
</code></pre>
<a href="https:&#x2F;&#x2F;github.com&#x2F;Reactive-Extensions&#x2F;RxJS" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;Reactive-Extensions&#x2F;RxJS</a><p>Regardless of the exact library or pattern, the broader concept of treating data sources as asynchronous event streams you can subscribe and react to definitely simplifies data flow and makes systems very robust.<p>An additional benefit of this pattern is the natural way it makes it easy to filter, chain, map, etc onto these subscriptions. Once again from the Rx world, <a href="http:&#x2F;&#x2F;rxmarbles.com&#x2F;" rel="nofollow">http:&#x2F;&#x2F;rxmarbles.com&#x2F;</a> does a great job visualizing these patterns.