Foundations & First PrinciplesBeginner14 min read4 questions

What Is System Design? A Beginner's Introduction

Start here. What system design actually is, the vocabulary you need before anything else makes sense, and the four things an interviewer is quietly grading while you talk.

Covers: Definition, functional vs non-functional requirements, the anatomy of a modern web system, what interviewers score

System design is the practice of deciding how the pieces of software fit together so that a product keeps working when it gets popular, when a machine dies, and when the team doubles in size. Writing a function is programming. Deciding that the function should live behind a queue, read from a replica, and fail open when the cache is cold - that is system design.

If you have never done it before, the intimidating part is that there is no compiler. Nothing tells you your answer is wrong. That is also the liberating part: in an interview there is no single correct design, only designs whose trade-offs you can or cannot defend.

The shape of almost every system you will design

Tap any box. Nearly every interview answer is a variation on this skeleton - you add, remove and specialise boxes, but the flow is remarkably stable.

ClientEdgeServiceCacheDatastoreQueueComputeTap a box for detail

Flow

  • ClientsDNS + CDN
  • DNS + CDNLoad balancer
  • Load balancerApplication servers
  • Application serversCache(read)
  • Application serversPrimary database(write)
  • Primary databaseRead replicas(replicate)
  • Application serversMessage queue(enqueue)
  • Message queueWorkers
  • WorkersObject storage
Filter
0/4 mastered
BeginnerrequirementsscopingfundamentalsAsked at Amazon, Google

30-second answer

Functional requirements say what the system does - post a tweet, follow a user, search. Non-functional requirements say how well it must do it - 100 million daily users, 200 ms p99, 99.99% availability, five-year retention. The functional list decides which boxes appear in your diagram; the non-functional numbers decide how many of each box, which database, and whether you need a cache, a queue or a CDN at all. Two systems with identical features and different scale numbers are completely different designs.

BeginnerlatencythroughputavailabilityAsked at Google, Meta

30-second answer

Latency is how long one request takes; throughput is how many requests you complete per second. They are not inverses - you can raise throughput with batching while making latency worse. Availability is the fraction of time the system successfully serves requests, and consistency is whether every reader sees the latest write. The central tension is that improving availability usually means adding replicas, and adding replicas makes strong consistency slower and more fragile.

BeginnerinterviewprocessframeworkAsked at Amazon, Meta

30-second answer

Roughly: 5 minutes clarifying requirements and scale, 5 minutes on API and data model, 10 minutes on a high-level design you draw end to end, 15 minutes going deep on two or three components the interviewer picks, and 5–10 minutes identifying bottlenecks and scaling the design. The failure mode is spending twenty minutes on requirements and never producing a design, or drawing instantly and never justifying anything.

BeginnercomponentsarchitecturefundamentalsAsked at Amazon, Shopify

30-second answer

There are about a dozen reusable components: DNS, CDN, load balancer, API gateway, stateless application servers, cache, relational and NoSQL databases, object storage, message queue or event log, search index, and a background worker pool. Each exists to solve one specific bottleneck. Knowing which problem each solves means you add components because you need them, rather than because they look impressive.

Showing 4 of 4 questions for what-is-system-design.

Check your understanding

4 questions · no sign-up, nothing stored

0/4 answered
Question 1

1.Which of these is a non-functional requirement?

Question 2

2.99.99% availability allows roughly how much downtime per month?

Question 3

3.Batching 100 writes into one request raises throughput 12× but raises per-write latency 8×. What does this demonstrate?

Question 4

4.In a 45-minute interview, roughly when should you have a complete end-to-end high-level design on the board?

Hands-on challenge

Build it - this is what you talk about in a deep-dive round.

Write the requirements doc for a photo-sharing app

Before you can design, you must scope. Produce a one-page requirements document for a photo-sharing product with 10 million daily active users, without drawing a single box.

Requirements

  • List exactly five functional requirements and three you are explicitly excluding.
  • State DAU, peak QPS assumption, read:write ratio and average photo size, with your reasoning.
  • Set a p99 latency target for feed load and for photo upload, and justify why they differ.
  • Pick an availability target and translate it into minutes of downtime per month.
  • State, per feature, whether stale reads are acceptable and for how long.

Stretch goals

  • Redo the numbers for 100× the users and note which requirement breaks first.
  • Write the one sentence you would say to an interviewer to summarise the hardest constraint.