Follow the request
What Is System Design?
Think in building blocks, trade-offs, and how a system behaves under real demand.
Learn / System Design
Twenty-four visual, one-minute lessons for understanding architecture without getting buried in textbook prose.
Your path
0/24 topics completed
Follow the request
Think in building blocks, trade-offs, and how a system behaves under real demand.
Many features, one deploy
One deployable application containing most or all product capabilities.
Each service owns one job
Small services own focused capabilities and can be deployed independently.
Simple to start
Independent pieces
Compare one deployable unit with independently operated services.
Make one machine stronger
Add more machines
A system's ability to handle more work without collapsing.
Make one machine stronger
Add more machines
Add more machines or make one machine larger.
Traffic gets shared
Distribute incoming requests across healthy servers.
Understand response time versus amount of work completed.
Keep frequently needed data closer to the code that requests it.
Content takes the shorter route
Serve static and cacheable content from locations near users.
Related records stay organized
Store structured data in related tables with strong query capabilities.
Flexible shapes for fast access
Use flexible data models for high scale or access patterns.
Simple to start
Independent pieces
Choose a data model by constraints, relationships, and access patterns.
A shortcut to matching rows
Create lookup structures that make common queries faster.
One copy sends changes to others
Keep copies of database data on multiple nodes.
Different records, different homes
Split a large dataset across nodes using a shard key.
Simple to start
Independent pieces
Distinguish copies for resilience from partitions for capacity.
Keep the important path working
Keep useful service running when components fail.
Do both copies agree right away?
Choose whether reads must see the newest write immediately.
When the network breaks, a trade-off appears
Reason about consistency, availability, and partitions in distributed systems.
Work finishes later
Compare waiting for a response with handing work off for later.
Work waits safely
Buffer work between producers and consumers.
Control how much traffic a client can send in a time window.
Any server can help
Memory stays nearby
Understand where user session state lives between requests.