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

  1. Chunking + content-addressed blocks (dedup)
  2. Delta sync (only changed blocks)
  3. Metadata service and per-device sync cursor
  4. Conflict resolution
  5. Notification service for change propagation
added …
LeaderboardSalaryAccount