Notion

How Notion handles concurrent editing with CRDTs

Sep 19, 2026Angelique Nehmzow, Emma Guo
How Notion handles concurrent editing with CRDTs
SummaryAI, from the source post

This post details Notion's transition from a 'last write wins' system to a CRDT-based approach for concurrent text editing. It introduces the core concepts of CRDTs, explains the use of Replicated Growable Array (RGA) with unique text item IDs (session ID + Lamport clock) and tombstones for handling insertions and deletions. It further elaborates on supporting rich text annotations using Peritext, including extendable and non-extendable annotations and their anchor points. Finally, it describes the mechanism for handling concurrent text splitting across blocks using 'text slices' and 'text slice trees' to maintain data consistency.