Member-only story
I Designed Notion’s Real-Time Sync Live. The Interviewer Found a Way to Lose Data in Under a Minute.
My merge logic worked perfectly, until two people edited the same line offline.
The interviewer let me talk for nineteen minutes before asking the one question that ended my design.
This was a Notion system design interview, the staff-level loop, and the prompt was the one you’d expect: design real-time collaborative document sync. Multiple users, same document, live cursors, the whole thing.
I’d prepared for this. I’d read the papers. I had a whiteboard flow I could run in my sleep.
That turned out to be the problem. I was running a rehearsal, not a design.
The clean start, and why it made everyone nod
I opened with operational transformation. If you’ve studied this space at all, you know why. It’s the classic answer, and it’s the one Google Docs and Etherpad were built on.
The idea is simple enough to explain in a minute. Every edit becomes an operation: insert “h” at index 4, delete 3 characters at index 12. Clients send operations to a server, the server puts them in a total order, and every client applies them in that same order.








