Web Applications from the Future: A Database in the Browser
Having been a dev on EtherPad, Google Wave, Coda, and other real-time collaborative apps with OT, undo, and so on...I think it's correct that, ideally, there would be a framework that handles real-time collaboration, undo/redo, and offline support for you, and then you build your app with these problems already solved.  I will probably create such a framework eventually.  I don't see it as a database engineering problem, it's more like a framework or application architecture, which every app like Google Docs or Figma has its own version of.  Writing such a framework is not too much harder than writing such an app, it just requires a little more abstraction and some documentation.If you've never written an undo manager, sync engine, etc., and you aren't writing a complex app, it's hard to arrive at the right design by thinking about pure data sync.  Also, storing and querying data are solved problems; it's more a question of coming up with a generic data model for an application and defining its semantics.