Hacker News new | ask | show | jobs
by habosa 4402 days ago
This is a great blog series, I'm really enjoying the read. Did you ever consider using an implementation of the Operational Transform (OT) algorithm? Google famously used this for Google Docs, which asynchronously merges a lot of small changes from many clients into a single, real-time document. Sounds a lot like what you built.
1 comments

OT is not so much an algorithm as an approach: a way of thinking about sensibly merging parallel sequences of change operations against a data model of some kind.

It’s a really interesting field, going back a long way: the canonical paper that the Google Wave (RIP) people referenced is nearly 20 years old (http://dl.acm.org/citation.cfm?doid=215585.215706). This is another, more recent, good paper: http://hal.archives-ouvertes.fr/docs/00/13/97/04/PDF/OsterIC....

In fact, Basis does use an OT approach in the delta merge algorithm: it breaks the deltas down into a canonical series of “micro operations”, merges them piecewise, then generates a new delta.

Thanks for the kudos!