I think the way is to be reactive for two-way data binding implementation. MobX and knockout.js proves that. Pub/sub pattern seems to fit in general. The Observer and Observable could provide a generalized mechanism for push-based notifications, as core of two-way data binding, which also known as the observer design pattern. And Rx are known to be the battle tested implementation of the pattern. Observable object represents the object that sends notifications (the provider), and the Observer object represents the class that receives them (the observer). I will not try to implement the wheel, my theoretical optimism says that things should be obvious :) Great egghead session should help with code: https: