А я ещё пирожков завёз, библиотека которая оборачивает JSON данные, и позволяет подписываться на события по изменению этих данных. В PlayCanvas Editor'е, где куча разных модулей (ui, history undo/redo, realtime sync, 3d viewport, etc) построены по сути вокруг такого паттерна. Разные части приложения подписываются на данные, и могут их также модифицировать, но сами модули о друг друге не знают. Таким образом меньше ломается всё, и проще расширять функционал.
Я написал такой Observer ещё в начале жизни Editor'а, но вот решил написать заного такую же библиотеку, но для публики.
https://github.com/Maksims/mr-Observer