Design Dropbox File Sync / Storage
Problem
Design Dropbox's core: a file synchronization and storage service keeping files consistent across a user's devices.
Requirements
Functional:
- Upload/download files; sync edits and deletes
- Conflict resolution on concurrent offline edits
- Block-level dedup and delta sync
- Sharing
Non-functional:
- Hundreds of millions of users
- Bandwidth-efficient (delta sync)
- Durable; eventual consistency
Discussion points
- Chunking + content-addressed blocks (dedup)
- Delta sync (only changed blocks)
- Metadata service and per-device sync cursor
- Conflict resolution
- Notification service for change propagation
added …