We just launched AI-powered sprint planning —See how it works →
Acme
Back to blogEngineering

How we rebuilt our real-time collaboration engine

The technical story behind Acme 2.0's new collaboration layer — CRDTs, operational transforms, and why we threw away 18 months of work.

JL

James Liu

Co-founder & CTO

March 5, 2026

8 min read

Real-time collaboration is a hard problem. Not 'requires a PhD' hard, but 'a thousand subtle edge cases that only show up at scale' hard. Our first collaboration layer shipped in 2022 and served us well — until it didn't.

The original system was built on operational transforms (OTs). OTs work by transforming each operation against concurrent operations so that everyone ends up in the same state. In theory, elegant. In practice, the algorithm complexity grows with the number of concurrent users and the size of the document.

At 10,000 teams, we started seeing issues. Documents with complex nested structures would occasionally diverge. Undo history would get corrupted after a certain number of concurrent edits. The server was doing too much reconciliation work. We tried patching, but the root cause was architectural.

We made the call in Q3 2025 to rebuild using CRDTs — Conflict-free Replicated Data Types. CRDTs are mathematically guaranteed to converge, which means we could move reconciliation to the client and dramatically reduce server load. The tradeoff is a larger client bundle and more complex data structures.

The rewrite took five months. We threw away about 18 months of accumulated OT code, which hurt. But the result is a system where we've seen zero divergence incidents in three months of beta testing across our largest customers. That's the kind of reliability we want to build on.

Enjoyed this post?

Share it with your team.