All problems

File Storage & Sync

Store, sync and share files across every device — like Dropbox.

hard~24 min Pro Simulator · +120 ptsTheory +36 pts
The build

Store and sync files like Dropbox / Google Drive through an upload storm — keeping the object store and metadata fast.

Split files into content-addressed chunks, dedup by hash, and put blobs in object storage with metadata in a DB. A cache shields the metadata DB; the object store is the durable backbone.

Components in play

  • API GatewayAuth + routing for upload / download / sync.
  • Metadata + block svcTracks the file tree, versions and chunk map.
  • Chunk / metadata cacheDedups chunks and shields the metadata store.
  • Object storeContent-addressed chunk storage (S3-style).

Graded on these SLOs

  • ≥ 98.00%Ops succeed
  • ≤ 120 msOp p99
  • ≥ 12k rpsSync throughput
  • ≤ 90%Headroom
  • ≤ 9Lean footprint
Base 12,000 rps38s run 3 scripted failures

The brief

Design a file storage and sync service like Dropbox or Google Drive: upload large files, sync them across devices, share them, and keep version history. Storage is huge and write-heavy in bursts; bandwidth and dedup matter enormously.

Functional

  • Upload / download files
  • Sync changes across a user's devices
  • Sharing + version history

Non-functional

  • Durable storage at massive scale
  • Efficient bandwidth — don't re-upload unchanged data
  • Fast metadata, eventually-consistent sync

Read the deep dive

16 min read

A file-sync service like Dropbox looks simple from the outside: drop a file in a folder and it appears on every device. Underneath it is one of the most storage-heavy and bandwidth-sensitive systems you can be asked to design. You are juggling exabytes of durable blobs, hundreds of terabytes of metadata, a long tail of huge binary uploads that arrive in bursts, and a sync problem that fans changes out to hundreds of millions of devices without melting your servers. The trick that makes all of it tractable is the one the grader rewards: stop treating files as files. Treat them as content-addressed chunks, dedup aggressively, and only ever move the bytes that actually changed. The simulator drives a representative metadata-and-block cell at 12,000 operations per second, ramps it through 18,000 and on to 24,000 during a bulk-upload storm, and — overlapping those ramps — kills a service replica, blips the object store for six seconds, and slows the gateway. Your job is to hold availability at or above 98 percent, p99 latency under 120 milliseconds, throughput at or above 12,000 ops per second, peak saturation under 90 percent, and the footprint at nine instances or fewer. Every decision below serves those five numbers.

Warm-up: design decisions

Optional theory to prime the calls a senior engineer would make before you build.

Pro

Solving is a Pro feature

Unlock the on-canvas AI design coach, per-run design reviews, the chaos simulator and all 12 problems for $15/month.

  • AI design coach on your canvas — pins failure points & over-engineering
  • Honest AI design review on every run
  • All 12 problems + unlimited chaos simulator
  • Points, levels & leaderboard
Get started