The "instantly syncs updates with all users" bit caught my eye. I always wonder how people go about implementing that. Asana works that way, and they have their own framework named Luna that does some functional reactive magic. Meteor, which I've been working with a lot lately and have really enjoyed using, was also created by some ex-Asana people, and enables the same type of real-time synced updates. I was just won…
First off, we're huge fans of both Meteor and Asana. I spoke with Geoff @ Meteor a couple years ago when we were first starting to build out the Airtable product and was very impressed by their approach and vision. We've closely followed the developer blogs of both those projects (and in Meteor's case, their source code). With those learnings, we built our own realtime database engine that supports relational data (w…
How do you handle conflicts? E.g. If two users change the same scalar value (of an integer cell, let's say) at the same time. Do you accept one and throw a warning back to the unlucky users?
How much to you cache locally? I had begun a framework such as this at some point, with the ultimate goal of being usable offline via the localStorage cached version (and sync upon connect), so I have a good idea of how much pain you must have gone through sorting this out :)
You wrote your own real-time database engine. You're nuts! (in a very good way). Have you written anything about this? It would be interesting to hear both about the database and the experience of "rolling your own" at such a low level.
You guys need a dev blog.