Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

I found this recent paper highly enlightening: “Real Differences between OT and CRDT for Co-Editors”– Chengzheng Sun, David Sun, Agustina, Weiwei Cai, October 2018.

Arxiv meta: https://arxiv.org/abs/1810.02137

PDF: https://arxiv.org/pdf/1810.02137.pdf

It’s well written imo. The conclusions chapter is very good.

“In this work, we have critically reviewed and evaluated representative OT and CRDT solutions, with respect to correctness, time and space complexity, simplicity, applicability in real world co- editors, and suitability in peer-to-peer co-editing. The evidences and evaluation results from this work disprove superiority claims made by CRDT over OT on all accounts.”

And it is also argued that OT is a more direct approach to the fundamental issues of realtime multiuser editing, and that that directness brings effectiveness.

HN discussion: https://news.ycombinator.com/item?id=18191867



Thanks for the mention. We've re-organized the material and updated the submissions by splitting into three parts. We wanted to extend the content but felt that in its original form the article was too dense. The new structure consists of three related but more self-contained articles to help articulate the key differences:

Overview: https://arxiv.org/abs/1905.01518

Systems perspective: https://arxiv.org/abs/1905.01517

Correctness/theoretical perspective: https://arxiv.org/abs/1905.01302


I still need to read that one, though it looks interesting (yes, I only got through the introduction and summary :)). Let's keep in mind that the authors already wrote several papers on OT (also ones that we based CKE5 on) -- so they have vast knowledge in the subject but may also favor one technology over the other. As much as I'd like to read that OT was the good choice I also want to be cautious in this regard :).


BTW. there's also a more fresh paper from the same authors: https://arxiv.org/abs/1905.01302

I don't know how much they differ, though.


Thanks!!


Do you have any idea which would be better for a vector based drawing app? The data is mostly strokes (lists of points), and individual strokes generally don't change.


From the introduction:

"After over a decade, however, CRDT solutions are rarely found in working co- editors or industry co-editing products, but OT solutions remain the choice for building the vast majority of co-editors. In addition, the scope of nearly all CRDT solutions for co-editing are confined to resolving issues in plain-text editing, while the scope of OT has been extended from plain-text editing to rich text word processors, and 3D digital media designs, etc."


I'm not sure what to make of that, though, as there seem to be quite a few different JSON CRDT libraries, for example.

Just after that it says "The contradictions between these realities and CRDT’s purported advantages have been the source of much debate and confusion in co-editing research and developer communities." That's kind of my question/confusion: people writing CRDTs really talk them up, and I can't tell what's true in practice. I have no way to judge the accuracy of this paper myself (I don't know enough to really understand it), so I'm hoping someone who knows this stuff in a practical way can shed some light on it.


I found that I could eventually power through the paper. I thought it was beyond me at first. Then I got angry and just shoved piece by piece into my head :) Not in linear fashion, and it didn’t happen quickly. Actully not that slow either once I got going. I found I was maybe rather more of a paper-reader than I assumed I was. Probably you too!!


So, what is your conclusion after reading it?


I found the arguments convincing, and will be moving towards OT in general. From outside it feels like OT is generally closer to how I tend to think.


Figma has a blog post about the algorithm they use for their collaborative editing features but no open source code as far as I can tell.

https://www.figma.com/blog/realtime-editing-of-ordered-seque...


I made a collaborative graph editing app using CRDTs in my master thesis. You can read about it here http://liu.diva-portal.org/smash/get/diva2:1292743/FULLTEXT0...


I don’t :) I’m just starting out. I’m sure that there are research papers addressing this question.

However, I think either could work. The task mostly maps onto editing a long string, right?




Consider applying for YC's Winter 2026 batch! Applications are open till Nov 10

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact