Before we design TinyURL, Instagram, or Netflix, let's build the mental model.
Every system design interview starts here:
[Client] --request--> [Server] --query--> [Database]
[Client] <--response-- [Server] <--data---- [Database]
A client (browser, mobile app) sends a request. A server processes it, maybe talks to a database, and sends a response back.
The interview isn't testing whether you know this diagram - it's testing whether you can identify where this breaks down at scale.
🔥 One server, one database works fine for 100 users.
At 1 million users, that single server becomes a bottleneck. What do you do?
That's the entire arc of system design interviews: start simple, then the interviewer says "now imagine 10x traffic" - and you evolve the design.
Over the coming weeks we'll build up from this exact diagram to full designs of TinyURL, WhatsApp, Instagram, Netflix, Uber, and Google Docs.
For now: if your single server started getting slow under load, what's the FIRST thing you'd check? Drop your answer 👇