Layer 3 · Go deeper · 11 min
Go deeper
Size it, build it, then make the calls an interviewer will push you on.
Back of the envelope
Size it up
Tap through each step of the arithmetic.
How many 26 TB drives hold the data?
Can the disks keep up with peak reads?
How often does a drive die, and what does repair cost?
Build-up · 5 steps
Build the high-level design
One functional requirement at a time, ending with an object store that works correctly in one region, before any deep dive.
Step 1 of 5
Store, read and delete objects
A small bucket registry keeps names unique. Front ends write the bytes to the data plane first, then commit a manifest to the key index: the moment the object exists, so a crash leaves only invisible garbage.
6 interview moments
You’re the candidate
The interviewer pushes on the hard parts. Pick an approach and see how it holds up.
Deep dive 1 of 6
Interviewer
“A disk dies every day, and a whole zone can go dark. How do you reach eleven nines without paying 3×?”
Your move. Pick an approach:
Deep dive 2 of 6
Interviewer
“The key index holds 1 PB and takes 5M operations a second, plus every LIST. How do you split it?”
Your move. Pick an approach:
Deep dive 3 of 6
Interviewer
“4M reads a second, skewed to popular objects, would pile onto a few index leaders. How do you cache metadata and stay strongly consistent?”
Your move. Pick an approach:
Deep dive 4 of 6
Interviewer
“A customer deletes an object stored inside a sealed, erasure-coded 1 GB extent. When do its bytes come back?”
Your move. Pick an approach:
Deep dive 5 of 6
Interviewer
“Each disk does about 120 random reads a second; the whole fleet falls short of peak. Where does each new extent go?”
Your move. Pick an approach:
Deep dive 6 of 6
Interviewer
“Disks, memory, network cards and software all corrupt data now and then. How do you know a GET returns the bytes you stored?”
Your move. Pick an approach:
Build-up · 6 steps
Follow one PUT and GET through it
The request path touches only front ends, the metadata plane and the data plane. Repair, scrubbing, GC, lifecycle and placement all run in the background with throttles.
Step 1 of 6
Front door
A request reaches a front end through DNS and load balancers. It authenticates, checks the bucket policy and per-tenant limits, and answers 503 Slow Down while a partition is mid-split.