</> 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 1: Simple Is the Product, Not the System - Problem Understanding & Clarifications

Executive Summary: This section covers the first ten minutes of a Staff interview on a prompt that sounds easy: design a notification service like AWS SNS. We split the prompt into what, who, why and how, and find two customers with opposite needs. We name the two traps (the Mailman and the Kafka Reciter), then ask six clarifying questions: five remove work, one adds it. We finish with written assumptions, the running example (ShopFast's order-events topic), and one late remark from the interviewer that shapes everything after.

The interviewer reads one sentence off a card:

"Design a simple notification service, something like AWS SNS. Publishers create topics, subscribers attach endpoints to a topic (an HTTP webhook, a queue, an email address, a phone number, a mobile device), and when someone publishes a message to the topic, every subscriber gets a copy."

Notice the word "simple." It describes the product. It does not describe the system behind it. That system pushes copies to servers, phones and inboxes it doesn't own, any of which can be slow, down, or gone. Your first job is to show you see the gap.

Decomposing the Prompt

Start with the four questions you'd ask of any system.

  • What it does: four verbs. Create topic, subscribe, publish, and the one hiding inside "gets a copy": deliver. The first three are API calls. The fourth is where the hour goes.
  • Who uses it: two customers who want opposite things. The publisher wants a fast, durable ack, then to forget the message. The subscriber wants every message at its own pace, even after a two-hour outage on its side. One request can't serve both clocks, so the design will have to split them.
  • Why it exists: decoupling. The order service shouldn't need to know that fraud, the warehouse and an analytics partner all care about new orders.
  • How it's used: mostly machine to machine. A backend publishes from code. Endpoints are queues, webhooks, phones, inboxes and SMS numbers.

Decomposing the prompt: the prompt splits into What (create topic, subscribe, publish; deliver, the hidden verb), Who (publishers want a fast, durable ack; subscribers want every message at their pace), Why (decouple producers from consumers) and How (queues, webhooks, push, email, SMS)

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.