Fri Jul 14 13:55:45 EDT 2017

embracing events and distributed caches

Coming from an FP world, I've been trying to avoid "distributed state"
for a while.  In reality, it is not possible to get rid of it
altogether, so best to embrace it.

Locally, it's possible to perform state updates in a more orchestrated
way to avoid untractable event propagation patterns.  E.g. this is
what ReactJS does: change the granularity of the message/object

Basically, this comes up a lot:

  - Thing goes live, queries other things for current state and
    registers a notifier.

  - Notifications come in and local cache/representation is updated,
    possibly notifying other things it has registered as listeners.

The source of this problem is that it is much too expensive to
transfer the entire state from one (physical) spot to another, if only
a subset is needed on the receiver or only a subset has changed on the
sender side.

Incremental updates are a very important behavioral pattern that looks
as if it is an optimization, but is so extremely inefficient when not
performed, it presents itself more often as an explicit feature or