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.
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