File Storage & Sync
Store, sync and share files across every device — like Dropbox.
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 Gateway — Auth + routing for upload / download / sync.
- Metadata + block svc — Tracks the file tree, versions and chunk map.
- Chunk / metadata cache — Dedups chunks and shields the metadata store.
- Object store — Content-addressed chunk storage (S3-style).
Graded on these SLOs
- ≥ 98.00%Ops succeed
- ≤ 120 msOp p99
- ≥ 12k rpsSync throughput
- ≤ 90%Headroom
- ≤ 9Lean footprint
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 readA 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.
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