Design a Collaborative Editing System (Google Docs)

System Design
Hard
Google
70.4K views

Design a real-time document collaboration service. Focus on Operational Transformation (OT) or Conflict-Free Replicated Data Types (CRDTs) for merging concurrent changes.

Why Interviewers Ask This

Interviewers at Google ask this to evaluate your ability to design distributed systems that handle high concurrency without data loss. They specifically test your understanding of Operational Transformation (OT) or CRDTs, assessing whether you can manage conflict resolution in real-time environments where network latency causes simultaneous edits.

How to Answer This Question

1. Clarify requirements: Define scale (concurrent users), consistency models (eventual vs strong), and latency constraints typical of Google's infrastructure. 2. High-level architecture: Propose a client-server model with WebSocket connections for bidirectional communication and a central coordination service. 3. Core algorithm selection: Explicitly choose between OT or CRDTs. Explain why CRDTs might be better for offline-first scenarios or why OT suits centralized control. 4. Conflict resolution details: Describe how operations are ordered, transformed, or merged mathematically to ensure all replicas converge to the same state. 5. Edge cases: Discuss handling network partitions, user disconnects, and operation batching to maintain performance under load.

Key Points to Cover

  • Explicitly comparing OT versus CRDT trade-offs with a clear recommendation
  • Demonstrating knowledge of specific algorithms like RGA or LSEQ for text handling
  • Addressing the challenge of network latency and offline synchronization
  • Designing a scalable architecture that avoids central bottlenecks
  • Explaining how mathematical properties guarantee state convergence across replicas

Sample Answer

To design a Google Docs-like system, I would start by defining the core requirement: low-latency synchronization across thousands of concurrent users with eventual consistency. The architecture would feature clients conn…

Common Mistakes to Avoid

  • Ignoring the difference between synchronous locking and asynchronous merging strategies
  • Focusing only on database storage while neglecting the real-time sync protocol
  • Proposing a solution that requires a single master node for all writes, creating a bottleneck
  • Overlooking how to handle operations generated while a user is disconnected from the network

Sound confident on this question in 5 minutes

Answer once and get a 30-second AI critique of your structure, content, and delivery. First attempt is free — no signup needed.

Try it free

Related Interview Questions

Browse all 190 System Design questionsBrowse all 145 Google questions