Card 1 of 50
Front. Objective-first. What do you name before the architecture?
These cards are original study material. They are not questions from a named employer or a live hiring loop.
All 50 cards in this deck
1.Objective-first
What do you name before the architecture?
The user action, the availability or latency target, and what failure is acceptable. The spare capacity follows from that.
2.Nines
What does moving from 99.9 to 99.99 change?
The allowed downtime in the window drops by ten. The design, the dependencies, and the deploy practice all have to be able to live inside the smaller budget.
3.Series
Five services in series are each 99.95 percent available. What is the path?
About 99.75 percent if they fail independently, because any one failure fails the request. The path is weaker than its weakest hop's headline.
4.Fanout-tail
A request waits for 100 shards. What dominates?
The slowest shard. The p99 of the fan-out is far worse than the p99 of one shard. Waiting for a quorum, or hedging, changes that.
5.Bytes
How do you estimate ingest volume?
Events per second times bytes per event times seconds. The raw number decides the bus, the disk, and the bill.
6.Overload
The API slows, then every request times out. What keeps goodput?
A limit that rejects overflow quickly, so accepted requests still finish. A queue with no limit turns load into timeouts for everyone.
7.Goodput
What is goodput?
Work that actually succeeds per second. Throughput that is mostly errors or timeouts is not goodput.
8.Cell
Why split tenants into cells?
A failure, a bad deploy, or a noisy tenant stays inside one cell. A shared everything fails everyone together.
9.Cell-size
What limits the size of a cell?
It has to be big enough to be efficient and small enough that losing it is inside the error budget.
10.Canary-math
A 1 percent canary on a rare error. What is the problem?
In a short window you may not see enough errors to tell the canary from the baseline. The step is too small for the signal you need.
11.Restore
Backups run nightly and have never been restored. What is missing?
A timed restore test. The objective you can meet is the one you have measured, not the one the backup vendor printed.
12.Restart-loop
Auto-restart hides 200 crashes a day. Why does that matter?
Users see few errors, so nobody fixes the crash. The day the restart is slow, those crashes become the outage.
13.Shared-fate
What is a shared-fate failure?
Parts you thought were independent die from one cause: one NAT, one certificate, one library. Redundancy that shares fate is not redundancy.
14.Capacity
What is N+1 capacity?
Enough spare that one failure still leaves a full serving set. N with no spare means the first failure is overload.
15.Queue-bound
How do you bound a queue?
A maximum depth and a timeout, with a defined drop or reject. An unbounded queue is a slow way to run out of memory.
16.Deadline
Why pass a deadline down the stack?
So a hop does not start work that cannot finish in time, and so retries do not outlive the user.
17.Bulkhead
What does a bulkhead isolate?
The concurrency one dependency may use. When that dependency stalls, the rest of the process still has workers.
18.Timeout-budget
How do you split a latency budget?
Across the hops, with a remainder. If the parts sum past the user's limit, the design cannot meet the SLO on the slow path.
19.Dependency-budget
How do you budget a dependency?
Your request's success needs its success. Either the dependency's SLO is tight enough, or you degrade when it fails.
20.Graceful
What does degrading on purpose look like?
A cached or partial answer, flagged as such, for a feature that is not the user's main job.
21.Critical-path
What belongs off the critical path?
Anything the response does not need: analytics, a recommendation, a secondary write. Those move to async or fail open.
22.Fail-open
When do you fail open?
When serving without the check is safer than failing the request, and you have accepted the risk. A rate limiter may fail open and risk a flood. An auth check fails closed.
23.Fail-closed
When do you fail closed?
When serving without the check is the incident: authentication, a safety limit, a payment confirmation.
24.Idem-retry
What must be true before you retry?
The operation is idempotent, or you can tell it did not happen. A retry of a payment that might have committed needs a key.
25.Jitter
Why jitter a scheduled job?
So a fleet does not kick off the same minute and stampede a dependency. Spread the start.
26.Lease
What is a lease?
Ownership that expires. If the holder dies, someone else can take the work after the lease, instead of waiting forever.
27.Singleton
How do you run one job in a fleet?
A lease or a leader, with a timeout. A flag file on one disk becomes two jobs when a second host starts.
28.Poison
How do you design for a poison message?
A retry limit, then a side queue. Without it, one bad message blocks every message behind it on that partition.
29.Backpressure
How should a full consumer push back?
By slowing the producer or rejecting, with a visible lag. Dropping silently loses data the SLO thought was durable.
30.Durability
Where is a write durable?
When it has reached the copies you promised, and only then do you acknowledge. Acknowledging at the app and writing after is how a crash loses the write.
31.Quorum
What does a quorum buy?
The write survives a minority of the copies being down, and a reader who also uses a quorum sees that write.
32.Multi-region
What do you decide for two regions?
Which region takes writes, how failover happens, and what a split would do. Two writers with no rule will conflict.
33.Rpo
How does the RPO show up in the design?
As the replication lag you can tolerate. Synchronous replication can hit a zero RPO and will stall writes when the far side is slow.
34.Rto
How does the RTO show up in the design?
As how fast traffic can move, including DNS, warm capacity, and a restore if you need one. A cold start misses a short RTO.
35.Game-day
What is a game day?
A planned failure in production or a faithful stage: kill a zone, restore a backup, and time it.
36.Error-budget
How does the budget constrain design?
A change that risks more than the remaining budget waits, or the SLO is explicitly loosened. The budget is the currency.
37.Slo-doc
What is in an SLO document?
The SLI query, the target, the window, and who is paged. A target with no query is a slogan.
38.Window
Why does the window matter?
A 30-day 99.9 percent budget is about 43 minutes. The same nines on a day are about a minute. The design lives in one of those, not in the word.
39.Alert-symptom
What does the design page on?
Budget burn of the user SLI. Host metrics are dashboards for the person who is already awake.
40.Saturation-metric
Which saturation metric do you design in?
The one that will hit first: connections, queue depth, or disk. You cannot alert on a limit you do not measure.
41.Deploy-risk
How do you limit deploy risk in the design?
A small first step, a gate on the SLI, and a rollback that does not need a data rewrite.
42.Config-kill
What is a kill switch?
A control, outside the bad deploy, that turns the feature off. It has to be tested before the day you need it.
43.Certificate
Why design for certificate expiry?
A shared cert is a shared-fate outage on a clock. Renewal is automated, and the expiry is alerted with time to spare.
44.Clock-sync
What breaks when clocks drift?
Leases, token expiry, and log order. The design assumes a bound on drift, and monitoring has to notice when the bound is broken.
45.Hot-key
A design has one coordination row everyone updates. What happens?
That row is the ceiling, no matter how many app servers you add. Split the coordination or cache the read.
46.Retry-budget
What is a retry budget?
A cap on extra calls a service may generate. Past it, the service fails the request instead of multiplying load downward.
47.Admission
What is admission control?
Deciding at the door whether to accept work, based on what is already in flight. It is how you stay at a concurrency you measured.
48.Steady
What is steady-state load versus failover load?
Steady state is today's traffic. Failover load is that traffic on the remaining capacity. You size for the second.
49.Dependency-map
What do you draw besides boxes?
For each arrow: whether the call is required, its timeout, and what the request returns when that call fails. Those three notes are what the box diagram leaves out.
50.Test-slo
How do you know the design meets the SLO?
You cause the failure you claim to survive, measure the SLI through it, and record how long recovery took. That run is the evidence the design meets the number.
