What's the metadata cost of using CRDTs?
Every character or element needs a unique ID—typically a tuple of (node ID, logical clock) or a unique UUID. Deleted elements are tombstones marked as removed rather than erased from memory, because you cannot truly delete until you know all other nodes have seen the deletion. A string of 1 MB can balloon to 10+ MB in memory as metadata accumulates.
Answered in
Operational Transforms vs CRDTsWhy Google Docs needs a server and Figma doesn't: how two competing approaches to concurrent editing resolve the same-string conflict, and when each wins.
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?
- Why did Figma move from operational transforms to CRDTs?
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.