</> MAANG.io
system design · 301

Advanced

Master system design interviews with scalable architecture patterns, distributed systems, and real-world design challenges.

0/480 solved 0% complete

Section 10: Pulling on Every Thread - Interviewer Deep-Dive Challenges

Executive Summary: The design is on the board and Sections 8 and 9 have defended search and trust. Now come seven escalations: a listing missing from search, an indexer half an hour behind, a 10x Sunday spike in one city, "why not just PostGIS", an attacker hunting a seller's home, scammers who adapt, and a listing that goes viral. Each gets mechanism, number and trade-off, then the senior line. Most answers leave the architecture alone.

The interviewer leans back. "The board's working. Now let's make Sunday night go badly." Each checks whether your numbers and decisions survive an incident.

Challenge 1: "My listing isn't in search"

"Maya posted ten minutes ago. Daniel can't find the bike. Support has the ticket. Walk me through it."

What they're really asking: Can you debug your own consistency model, or do you just say "eventual consistency" and stop there?

Start with the contract. Maya's own views read from Postgres, so the listing appeared for Maya the moment it was posted. Search promises p95 under 60 seconds from publish, so ten minutes is well past the SLO. Triage runs cheapest check first:

Triage for a listing missing from search: check its status in Postgres first (pending_review means held for human review, rejected means tell the seller the reason); if active, check whether indexer lag is above budget (yes is a pipeline incident, see Challenge 2); if not, check whether the doc is in the index at the current version (no means reindex this listing from Postgres, yes means a query mismatch: radius, filters, rank)

The most likely answer is the dullest one. About 2% of new listings are held for human review, around 40K a day, and a held listing stays pending_review until someone looks at it. Maya's app should already say "Under review." If it's active, check pipeline lag, then compare the Elasticsearch document's version with the row's. Last, rerun Daniel's query: maybe the bike is on page three.

The senior line: "Read-your-writes means Maya sees the listing's real status. 'Not in search' is a question about status, lag or version, and each one has a metric I can check before I touch any code."

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.