Observer – is a pattern that allows to decouple Data from Logic. @PlayCanvas Editor is built on this, and been battle proven through years with: ui, history undo/redo, realtime sync, 3D viewport and other parts work together through Observers. Its robust and flexible. #JavaScript