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

Lovely analysis!

But one issue: it's not actually the case that "all CRDTs are OTs".

OT is the feature of Transforming and Operation. This requires two things: (1) Operations, and (2) Transforming them so that they do the same thing when applied from one place in distributed time vs. another place in distributed time.

However, there are plenty of CRDTs that (a) do not have operations, and also plenty of CRDTs that (b) do not transform operations.

Consider a typical state-based CRDT like LWW register. It does not have operations; it just has a current state: the value of the register. And it does not transform operations. It just always computes the current value of the register.

(For more on the relationship between OT and CRDT, see my notes at braid.org/meeting-111.)



I think it's debatable what constitutes an "operation". In a CvRDT, a delta or diff can be considered an operation. In an ID-based OT, it can be considered that there is a transformation of operations, only instead of transforming with respect to other operations, they are transformed with respect to the current document (if there were conflicts, they cannot always be applied in their original form).




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

Search: