The Ask
An advanced design problem is one where scale breaks the simple design and machines must agree without trusting the network. The same six interview steps apply, at greater depth.
Clarify the ask
Clarifying the ask comes first. What counts as advanced follows from that clarification.
Beginner problems fitted on one machine or a few machines. Advanced problems spread one service across many machines and many data centers.
The extra machines bring scale. They also bring a harder problem, because no machine sees the whole truth.
Why scale breaks the simple design
The scale shows where simple designs stop working.
100,000,000 requests a day ÷ 86,400 seconds in a day = 1,157 requests a second.
One machine can serve far less than a busy service receives. The design must share the work across machines.
Sharing the work splits the data into copies and shards. Copies and shards must then stay in agreement.
The agreement problem
Agreement means every healthy machine reaches the same decision about the same event. One payment, one seat sale, or one saved edit must not become two different truths.
The network makes agreement hard. Messages can arrive late, arrive twice, or never arrive at all.
A slow machine looks exactly like a failed machine from the outside. No wait is long enough to prove a machine is dead.
So the design cannot trust the network. It must reach safe decisions from partial news.
What the interviewer is testing
The interviewer wants the trade-offs stated out loud. A strong answer names what the design protects and what it gives up.
Consistency and availability pull in opposite directions, as CAP states. Advanced problems make that pull sharper, not new.
A group of 5 machines needs 3 to agree before a decision counts as safe. That rule is central, and the tools behind it enforce it.
How the pieces fit together
The agreement tools come first. Hard problems depend on those tools.
Each problem still walks the same steps. Clarify, estimate, design, go deep, then weigh the trade-offs.
Advanced design is agreement between machines that cannot trust the network.
What changes at advanced scale
| Aspect | The simple design | The advanced problem |
|---|---|---|
| Machines | One machine or a few | Many machines that must agree |
| Failure | The whole service stops | One part fails, the rest keep running |
| Network | Assumed reliable | Delays, drops, or repeats messages |
| Data | One true copy | Copies that can disagree |
Exercise
What makes a design problem advanced?