</> MAANG.io

Expert

Design landmark systems in depth, from Dynamo, GFS, Bigtable and Kafka to payments and ads pipelines.

0 of 232 solved 0%

Section 10: Now Break It - Interviewer Deep-Dive Challenges

Executive Summary: The interviewer tries to break the design eight times: Lumen's timestamp prefix at 50K PUT/s against a 3,500 writes/s partition, a 5 TB object in 10,000 parts, 10 billion lifecycle deletes, a billion-key LIST and the count trap, one tenant pulling 1 Tbps (18% of the 5.6 Tbps peak), a bit-flipping NIC, a slow-but-alive partition server, and "make it cheaper." Every strong answer is mechanism, number, trade-off. Almost every mechanism already exists in Sections 7 to 9; reusing them under fire is the signal.

The interviewer caps the marker. "I believe the happy path. Let's see what it does under stress."

You: "For each one: the weak answer, then mechanism, number, and cost."

Challenge 1: The Hot Prefix

Interviewer: "It's 9 a.m. Lumen's cameras all write to 2026/10/31/… at once, 50K PUT/s into one key range."

The weak answer is "tell Lumen to randomize their prefixes": the pre-2018 workaround, blaming the customer for the index's shape.

You: "Those keys land in one range partition with a design limit of 3,500 writes/s (N6). First, the front-end's per-partition token bucket (D9) returns 503 Slow Down with jittered retries for everything over budget. Within about a minute the auto-splitter sees sustained overload and splits the range at a midpoint key, repeating until every child is under its ceiling, roughly fifteen children for 50K/s. If Priya ends up with camera-first keys, it is because her transcoder lists per camera, a data-model reason; the throttle and the split must work for the keys she has. The trade-off is that first minute: real 503s her SDK must retry, and a latency bump at each map change. A global rate limiter was rejected: it throttles every tenant for one tenant's prefix."

The split-and-throttle loop:

Hot prefix handling: Lumen PUTs to 2026/10/31/... at 50K/s hit a per-partition token bucket in the front-end; writes within 3,500 per second reach the partition owner while the rest get 503 Slow Down with jittered retry and loop back; the load monitor sees sustained overload, the auto-splitter picks a midpoint key, two child ranges are created and the partition map is updated back to the token bucket

Quick check before moving on:


Sign in to continue reading

The rest of this lesson is available with a free account. Signing in with Google or Microsoft is free.

Sign in to read the full lesson

Sign in to MAANG.io

Use your Google or Microsoft account — no password to remember.

Continue with Google Continue with Microsoft

Please accept the terms above to continue.