The Xi Text Engine CRDT
If anyone’s interested, I wrote a long article a few months ago on (what I believe to be) the ultimate string CRDT, among other things: <a href="http://archagon.net/blog/2018/03/24/data-laced-with-history/" rel="nofollow">http://archagon.net/blog/2018/03/24/data-laced-with-history/</a><p>I really, really love the work that Levien and Hume have put into the Xi CRDT, and how open they’ve been with their research. IMHO, though, it’s a bit too “academic” and clever for any sort of general purpose use, though it may well be ideally suited for its stated purpose. There even appears to be a limit to the amount of rewinding you can do, which points to O(n^2) complexity for conflict resolution: a huge problem for offline-first development, where concurrent timelines don’t really have any limit on the length of their diverging histories. (I might be mistaken about this—please correct me if I’m wrong.)<p>Still a very satisfying algorithm, though! You can see more of Raph Levien’s thinking here: <a href="https://medium.com/@raphlinus/towards-a-unified-theory-of-operational-transformation-and-crdt-70485876f72f" rel="nofollow">https://medium.com/@raphlinus/towards-a-unified-theory-of-op...</a>