sydepsystem design atlas

File Sync Service (Dropbox-style)

Chunk, deduplicate and sync files across devices with conflict resolution.

AdvancedMediaPlatform
Sync ClientClientSync ServiceComputeFile MetadataStorageBlock Storage (deduped)StorageChange NotificationsMessaging

Files are chunked and hashed for deduplication, uploaded to block storage, and a metadata service tracks versions per device; a sync client on each device watches for local changes and pulls remote deltas.

When to use it

  • Large files need efficient re-sync (only changed blocks) rather than re-uploading whole files
  • Multiple devices must reconcile concurrent edits to the same file

Trade-offs

  • Conflict resolution for concurrent edits needs an explicit strategy (last-write-wins, versioned copies)
  • Chunk-level deduplication and metadata tracking add real implementation complexity

Components used

Desktop AppManaged App ServiceRelational DatabaseObject StorageEvent Bus

How it works

  • Files are split into content-addressed chunks, so only changed chunks are transferred and identical chunks are stored once across all users.
  • Clients maintain local metadata and compare against server state to compute what changed on each side.
  • Concurrent edits are detected by version vectors; the usual resolution is to keep both as conflicted copies rather than silently discard one.

Used in the wild

  • Consumer and business file sync across devices.
  • Backup products where incremental transfer is essential.
  • Distributing large assets to many machines with heavy chunk reuse.

Good to know

  • Deduplication across users is a large storage win but leaks information: if uploading a file completes instantly, someone else already had it. Per-user deduplication scopes avoid the side channel.
  • Dropbox's early growth was driven by delta sync — editing one page of a large document uploaded kilobytes instead of the whole file, which felt like magic on 2008-era broadband.