Practical Intro to Operational Transformation

4 comments

This paper does a good job relating OT and CRDT as the two major approaches to collaborative editing.

For anyone interested in this topic, I'm publishing a new theory on this called Collapsing Time Machines: https://braid.org/meeting-111.

Just want to say- very pleasant blog from a typographical and design standpoint.

Edit: Looks like you made the font yourself, very cool.

Had the same reaction, it reminded me a bit of magick.css

I think there's a misunderstanding here.

People often associate CRDTs with IDs and tombstones, while associating OTs with positions.

This is incorrect. What makes them different is that CRDTs must work in P2P environments *by definition*. That's all.

Other true statements:

- All CRDTs are OTs, but not all OTs are CRDTs.

- If an OT supports P2P, then it's also a CRDT.

- If it doesn't support P2P, it's not a CRDT.

- A CRDT can have no IDs and be operation-based.

- An OT can have no positions and be ID-based.

In fact, I just released an ID-based OT framework yesterday: https://docnode.dev.

I hope that clarifies things a bit more!

> Even though ot do is simple, ot undo is very complicated and inefficient. We’ll expand on this later sections. Undo in crdt is simple and can be handled as normal operations.

Not so sure about that. Undo in OT seems simpler to me than undo in CRDT.