Phase 1 — Clarify & Scope
Interviewer: Design Dropbox — a file sync service. What do you want to clarify?
Candidate: Key questions:
- What's the core feature set — sync across devices, share files/folders, collaboration?
- What's the scale — users, files, total storage?
- File size distribution — mostly small files (docs) or large files (videos)?
- What does "sync" mean — immediate (like Dropbox desktop) or eventual?
- Conflict resolution — what happens when two devices edit the same file offline?
Interviewer: File sync across multiple devices, file sharing with links. 500 million users, 1 billion files. Storage: average file size 1 MB → 1 PB total. Sync latency: changes should appear on other devices within 30 seconds. Conflict: create a "conflicted copy" (Dropbox's approach — don't silently overwrite).
Candidate: Let me size this:
At 30-second sync SLA: changes must propagate within 30 seconds of upload completion.
Interviewer: What are the core requirements?
Candidate:
- Upload files, sync to all user's devices within 30 seconds
- Delta sync — only upload/download changed blocks, not the whole file
- File deduplication — same file uploaded by different users stored once
- Conflict detection — detect when two devices modified the same file offline
- File sharing — generate shareable links with optional expiry…
In the full tutorial
- Phase 2 — High-Level Architecture
- Phase 3 — Deep Dive & Evolution
- Phase 4 — Robustness & Operations