Product1 publisher3 min readPublished
Notion says its editor dropped one of two edits to the same block until 2025
In an engineering post, Notion says its server used to keep whichever update to a block arrived last. Pages felt collaborative anyway, because each paragraph is stored as its own database record. The fix is a CRDT.
The Product Desk · Product desk

What happened
- Notion's engineering blog says its server used to process each update to a block record as it arrived, with whichever came last determining the result and one person's edits completely lost.
- Pages felt collaborative because each block is stored as a separate database record, so people editing different blocks never overwrote each other while two people in one block could lose work.
- The replacement is a CRDT based on Replicated Growable Array, a tree holding every character ever inserted, each a node with a unique and stable ID.
Compiled by The Product DeskSomething wrong?How this is made
Why it matters
- constraint The guarantee a rollout can now make is that nothing vanishes, and Notion concedes the merged result can miss what one editor wanted.
- decision Anyone who kept deferring requests for offline Notion was choosing the safer path through a merge model the vendor now describes as capable of losing an entire offline session.
- exposure Support leads who told users a missing paragraph must be a browser or history problem now have a vendor-named cause to correct, and the correction is theirs to make.
- cost Keeping deleted characters as tombstones puts the price of conflict-free merging on storage and document size. Notion groups runs of characters under one ID for storage efficiency.
The support-thread version is a user insisting that a sentence they typed is gone, and a colleague who was in the same paragraph at the same time. What kept that from looking like a bug for years was the data model. A Notion page is usually several blocks, each block is a separate database record, and two people working in different paragraphs never wrote to the same row [4].
So the unit of conflict was the block. Collide inside one and whoever saved last defined its contents; work in separate ones and both sets of edits survived [12]. Notion wrote that the chance of one person's change being overwritten increases as the number of collaborators grows [3]. The post does not say how often edits were actually lost.
Offline is where the old model got expensive. "Someone editing a page offline could lose all their changes if others edited the same blocks before they reconnected," the company wrote [5]. An offline session queues a write for every block it touched, and each of those writes was settled by arrival order [2].
The replacement keeps every character that was ever typed. Notion's CRDT is based on Replicated Growable Array, a tree holding all characters ever inserted, each a node with a unique and stable ID [7]. Deletes remove nothing. They mark a text item as a tombstone, because operations still in flight, or queued on an offline client, may reference the deleted character's ID [8]. IDs pair a session ID with a Lamport clock, and two inserts pointing at the same origin sort by the most recent logical timestamp, with the session ID breaking ties [9]. Notion also assigns one ID to a contiguous run of characters from the same session to improve storage efficiency [11].
Merging without loss still hands a writer a sentence she did not write. Notion says as much, granting that if Emma wanted the text to read exactly one way, the merged result would not meet that goal. The post adds that in longer documents people are often changing more distant parts of the same text, where the merge holds intent well [10].
What settles most of this for anyone rolling out a collaborative editor is the smallest unit the server merges, a whole record at one end and a single character at the other. Then there is what happens to the write that loses, whether it is thrown away or kept somewhere a user can retrieve it. Record-level and thrown away is the quadrant where a product feels collaborative and costs people paragraphs; character-level and kept is where the support load moves from missing text to odd text. Notion put itself in the first quadrant for most of its life: "But until 2025, Notion wasn't really collaborative," the company wrote [1].
What to watch
- Whether Notion publishes when the CRDT editor reached every workspace and every surface, including mobile.
- Whether full offline editing now ships broadly, since Notion tied the old data-loss risk to reconnecting clients.
- Whether tombstone growth shows up as page size or load-time limits in documents edited for years.