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 does an index's internal data structure matter if it all ends up 'faster than a scan'?
- Why is disk I/O the thing index structures are actually optimizing for?
- Why can't a hash index handle range queries?
- What makes a bitmap index different from a B-tree, and when is it better?
- Why do B-trees stay balanced automatically as data is inserted?
- Why does a database need an index at all — why can't it just scan the table?
- When is a hash index better than a B-tree index?
- What is a composite index and why does column order matter?
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.