Comment by zzzcpan

6 years ago

OT are inferior to CRDTs in every single way. In 2019 people shouldn't even be looking at OT.

I disagree. I think OT systems are way simpler to reason about, because they’re just an extension of event sourcing. Also CRDTs type implementations have been trailing OT algorithms in terms of features forever. OT got JSON editing support first, and JSON1 (the OT algorithm I linked above) also supports arbitrary tree reparenting, which as far as I know is missing from all CRDT algorithms. That’s needed to implement apps like workflowy, where you can drag trees around.

CRDT algorithms have documents which grow without bound. With OT, the documents are always minimal and it’s easy to reason about (and implement) trimming operations.

CRDTs are a better tool for distributed applications, but for server client stuff OT works fine.

  • :) I got arbitrary tree reparenting and mutable (and immutable!) state working in our CRDT, for about 4 years now. No unbounded growth!

    Runs in production, having done 1TB p2p data in a day, on $99 hardware! Internet Archive and others use it.

    I do agree tho, most CRDT implementations have just as many scaling and compaction problems as any append-only log system.

    OT is worthwhile to understand.

  • Well, CRDTs were born to simplify reasoning. You can't really claim that OT is simpler. And performance of both is implementation specific with similar theoretical bounds. But, of course, CRDTs are much more general and foundational.