4 ms·
Yes, OT = Operational Transform[1]. Usually the difference is that operational transform algorithms create an ordered global list of all the changes (typically
by josephg 4y ago
Yes, OT = Operational Transform[1].
Usually the difference is that operational transform algorithms create an ordered global list of all the changes (typically on a centralized server). They flatten operations using a heuristic "transform" function.
CRDTs don't reorder the changes, but guarantee that when all changes are merged (in any order) the final result would be the same. For example, MAX() is a complete CRDT merging function.
But the distinction gets much more blurry at the edges. You can make OT algorithms which work without a central server, and CRDTs which use operation reordering to guarantee merge consistency.
[1] https://en.wikipedia.org/wiki/Operational_transformation https://en.wikipedia.org/wiki/Operational_transformation
- Rapzid 4y agoCould you go into detail a bit more on operation based CRDTs and merge consistency? I'm currently struggling with moving document merge use-case to Yjs while leveraging it's updates for efficient real-time rebasing. It's insert/delete world view (state based) seems to make this practically impossible.