Why did Figma move from operational transforms to CRDTs?
Operational transforms were complex to implement correctly and required a central server to resolve conflicts in real time. CRDTs are mathematically simpler: each replica independently applies the same operations deterministically, so Figma could handle offline edits, peer-to-peer sync, and better support for undo/redo.
Answered in
CRDTs: Conflict-Free Collaboration at 60fpsEvery user edits a local replica; operations merge automatically into an identical state regardless of arrival order, with no central locking.
Read the full analysisOther questions this article answers
More system design questions
- Why doesn't Google just run Dijkstra faster?
- What is a shortcut edge and when is it precomputed?
- How much space do shortcut edges take compared to the original graph?
- Can Contraction Hierarchies handle dynamic graphs like traffic or road closure?
- Why contract low-degree nodes first instead of high-degree ones?
- What is a CRDT and why does it matter for real-time collaboration?
- How do CRDTs handle concurrent edits without a central server referee?
- What's the memory and bandwidth cost of running replicas locally?
Every answer on Crashtech is written by the editor of the article it comes from — never auto-summarised. Browse all answers or the System Design beat.