Live data from Hacker News

Real Differences Between OT and CRDT for Co-Editors

arxiv.org

31–40 of 66 posts

Re: Real Differences Between OT and CRDT for Co-Editors

#31
post #28

If you're interested in this stuff, you might also like Raph Levien's writing on it: - https://medium.com/@raphlinus/towards-a-unified-theory-of-op... - https://github.com/xi-editor/xi-editor/blob/e8065a3993b80af0...

Thanks! I think a unification of OT and CRDT is a very promising space, both for practical implementation and for deeper academic understanding. To be honest, I only skimmed the posted paper, but it didn't grab my attention. It's very difficult these days for me to motivate spending time in this space.

Re: Real Differences Between OT and CRDT for Co-Editors

#33
post #14

Here's the key sentence: "concrete implementations of CRDT in co-editors revealed key missing steps in CRDT literature." This paper may be correct for academic CRDTs but it is very wrong when looking at industry implementations. My hunch is that because CRDTs are so much easier to grok than OT, engineers are empowered to make use case-specific improvements that aren't reflected in academic literature. For example, th…

[deleted]

Re: Real Differences Between OT and CRDT for Co-Editors

#35
post #10

An article of disappointing quality from well known OT authors. Like,algo x has issue X, algo y has issue Y, z has Z, so CRDT has issues X, Y and Z... and many things like that.

These algos with unresolved issues would mislead researchers and engineers. Detecting and revealing these issues are significant.

Re: Real Differences Between OT and CRDT for Co-Editors

#36
post #32

Are there any CRDT-based industrial co-editing apps? Please, do not mention the toy implementations and applications unrelated to co-editing.

Recently one guy reverse engineered Apple Notes. It is a CRDT. I personally made a CRDT sync for Yandex. There is also list on Github... https://github.com/ipfs/research-CRDT/issues/40

Re: Real Differences Between OT and CRDT for Co-Editors

#37
post #36
post #32

Are there any CRDT-based industrial co-editing apps? Please, do not mention the toy implementations and applications unrelated to co-editing.

Recently one guy reverse engineered Apple Notes. It is a CRDT. I personally made a CRDT sync for Yandex. There is also list on Github... https://github.com/ipfs/research-CRDT/issues/40

Good work. Which CRDT alg was adopted in your product?

Re: Real Differences Between OT and CRDT for Co-Editors

#38
post #37
post #36

Earlier quoted context omitted.

Recently one guy reverse engineered Apple Notes. It is a CRDT. I personally made a CRDT sync for Yandex. There is also list on Github... https://github.com/ipfs/research-CRDT/issues/40

Good work. Which CRDT alg was adopted in your product?

[deleted]

Re: Real Differences Between OT and CRDT for Co-Editors

#39
post #23
post #16

Earlier quoted context omitted.

The time complexity of most OT systems is not related to H.

I've been working in OT systems for years (G Wave, ShareJS, ShareDB, some other stuff). I'm consistently surprised by how badly academic papers predict OT systems will perform. In reality, they perform great . My little C implementation of text OT can handle about 20M text operation transforms / second[1]. Part of the gap is that many academic papers model text operations as just single character edits. If you do tha…

I fully agree, I don't understand the emphasis on performance both in the literature and in comments on the subject.

Additionally, it is more common to see CRDT libraries that make character-wise operations and create an object for each character (eg. y-js.org, github.com/google/ot-crdt-papers), which is not ideal.

Obviously there are also libraries such as Atom's Teletype that have string-wise operations.

The cynic in me feels like the CRDT vs. OT war misses the forest for the trees. What matters is lacking features, and the feature that is most needed and least described is a systematic way to offer a diff editor matching the normal experience. Indeed, after having been offline a while, one wants to see and select how their changes will integrate the shared resource.

Re: Real Differences Between OT and CRDT for Co-Editors

#40
post #19
post #9

Earlier quoted context omitted.

The article above says sharedb is originally written by a Google Wave developer.

waves Y'all are talking about me. I was indeed on the wave team, although I joined Wave right near the end. (And then I stayed on to help opensource the whole thing.) We wrote ShareDB at Lever[1], which was in the 2012 YC batch (iirc). We wrote it to allow realtime collaborative editing in our application of all our data fields by default. I'm still really proud of that work. ShareDB primarily uses JSON-OT[2], which…

Thanks a lot for the background on sharedb! Great work, indeed.
Post reply on HN