This looks similar to how Meteor's ReactiveVar package, and lower-level Tracker library, works: <a href="https://docs.meteor.com/api/reactive-var.html" rel="nofollow">https://docs.meteor.com/api/reactive-var.html</a><p>It's certainly helped make building real-time user interfaces that update when the data changes significantly easier in my opinion, because you're able to express your intent in code more closely to what you mean rather than having to write all the connecting reactive boilerplate yourself.
This is neat. I did something similar to this a while ago for WPF databinding and calculated properties in business objects. Does it support INotifyPropertyChanged?<p>One of the problems I found is that a lot of team members don't really like to think on that level of abstraction. So it was hard to introduce it team wide and have people keep using it.
If you're using JavaScript, MobX [1] is a library available that implements this pattern, which I find a bit easier to use than Meteor's Tracker yet also comes with super-performant React bindings.<p>[1] <a href="https://github.com/mobxjs/mobx" rel="nofollow">https://github.com/mobxjs/mobx</a>