Free to read · No account needed

Learn system design, one request at a time.

For software engineers preparing for a system design interview or moving into distributed systems. Follow a request through caches, queues and databases, then test what you learned in labs, case studies and quizzes.

One request crossing three floors of a system: the edge, the application and the data layer.One request crossing three floors of a system: the edge, the application and the data layer.
  1. Client to CDN: Static files are answered here; API calls are passed on. Taught in Networking, APIs and CDNs.
  2. CDN to Load balancer: Forwards the API call to the origin’s load balancer. Taught in From one server to many: scaling and load balancing.
  3. Load balancer to API gateway: Picks a healthy gateway instance. Taught in Load balancing: layer 4, layer 7 and gateways.
  4. API gateway to Catalog service: Checks who is asking and routes the call to the catalog service. Taught in How microservices work together.
  5. Catalog service to Cache: Checks the cache first. A hit ends the request here. Taught in Caching.
  6. Catalog service to Database: Reads the database, then stores the result in the cache so the next request is a hit. Taught in Choosing and using a database.

From the apps you use to the tech behind them.

Open any logo to see how it works.

Have a goal? Follow a path.

Cracking the system design interview, or growing into a staff or architect role? A path sets the order for you across lessons, labs and designs. Open one to see every step.

All paths

Start here

Beginner

Learn how the web works, how data is stored, and the building blocks every system shares, then design your first system end to end.

Follow this path

Know the subject? Pick a course.

Each system design course goes deep on one subject, in six stages from foundations to interview practice.

All courses
  1. Foundations

    Requirements, estimates and the core parts of every system, and when to use each.

System Design Foundations

Level
Beginner
Length
13 lessons
Time
2 h 22 min

The core ideas behind every large system, in short lessons: scaling, storage, caching, consistency, queues, reliability and a full worked design.

You will be able to

  • Break an open-ended design problem into requirements, estimates and components
  • Explain how load balancers, caches, databases and queues fit together, and when to use each
  • Reason about trade-offs such as consistency versus availability instead of memorising answers

Starts with

  1. What system design is, and how to approach it9 min
  2. From one server to many: scaling and load balancing10 min
  3. Back-of-the-envelope estimation9 min
  4. Choosing and using a database11 min
  5. Replication and sharding11 min

Stuck on one idea? Start from a topic.

See how caching, sharding, queues and consensus connect, then follow any of them to the lessons that teach it.

All topics

The building blocks of every design.

Open one for the lessons that teach it, in reading order.

Load BalancerNetworking2 lessons
CachingData2 lessons
CDNNetworking1 lesson
DatabasesData4 lessons
Database ShardingData3 lessons
ReplicationData2 lessons
CAP TheoremData1 lesson
Rate LimitingNetworking1 lesson
KafkaMessaging3 lessons
MicroservicesArchitecture3 lessons
ResilienceArchitecture2 lessons
ObservabilityInfrastructure3 lessons

How real products are built.

Pick a hard problem. See how Netflix, Uber or WhatsApp deal with it, from the architecture to the trade-offs.

All case studies
  1. Customers (Client)
  2. Service mesh of APIs (Service)
  3. Cart and checkout (Service)
  4. SQS / SNS (Queue)
  5. Other services (Service)
  6. Dynamo / DynamoDB (Storage)
Simplified from public write-ups. Not an official Amazon diagram.

Amazon

From a monolith to the service-oriented template for modern commerce.

  • Availability over consistency. A cart must accept writes even during partitions; conflicts are reconciled later.
  • Peak events. Prime Day demands capacity planning and load shedding.
  • Org-scale coordination. Thousands of services need strict API contracts.
Read the Amazon case study

Think you have got it? Prove it.

Three questions in the style of a system design interview. Every answer comes with the reason.

All quizzes
  1. API Gateway, current
  2. CDN, not answered yet
  3. Kubernetes, not answered yet

Scenario · question 1 of 3

A mobile screen needs data from 6 services, making the app slow. What pattern helps?

Options

Answer as you would in a design review.

You will see straight away whether it holds up, and why. Nothing is saved, so guess freely.

The full API Gateway quiz: 6 questions

Then build it

System Builder

Turn an answer into a working design. Put the parts together, send traffic through them and see what gives way first.

  • Start from a guided build, an example design or a free canvas
  • Run traffic against your design
  • Break a part and find the weak point
Open System Builder

Turn a vague brief into a design you can defend.

Requirements, estimates, components and trade-offs, in the order you would use them in a real design review.

Common questions

What is system design?

System design is deciding which parts a software system needs and how they work together, so it stays fast and reliable as it grows: load balancers, caches, databases, queues and the trade-offs between them. Interviews test it because senior engineers do it every day.

Is System Design Atlas really free?

Yes. The lessons, code labs, learning paths and the curated resource library are free to read and use, with no paywall in front of the fundamentals.

Do I need an account to start?

No. Open any lesson and begin. Your progress and bookmarks are kept in your browser on this device.

Where should a complete beginner start?

Start with System Design Foundations, the first course on this page, or open the Beginner learning path. It starts with how the web works and how data is stored, then builds to designing a first system end to end.

Will this help me prepare for a system design interview?

Yes. The Interview Preparation course gives you a method and a bank of practice problems mapped to the lessons that help with each, and the Interview Ready path sets the order. The quizzes let you check yourself as you go.

What are the most common system design interview questions?

Rate limiters, news feeds, chat systems, search autocomplete, video streaming, file storage and URL shorteners come up again and again, and AI products such as coding assistants are now asked too. The Classic System Designs course works through most of these step by step, Real-World Systems includes an AI coding assistant, and the design challenges let you try them yourself.

Where do the resources in the library come from?

They are articles, talks, repositories and papers from engineering teams and creators around the web. Every one links to the original with credit, and resources belong to their owners.

Can I do more than read?

Yes. Run code labs, push traffic through the simulators, sketch a design in the System Builder, and check yourself with quizzes and practice problems.