0% completed
Course Introduction
On This Page
- What This Course Is About
- Who This Course Is For
- The Twelve Modules
- How Each Lesson Works
- This Module
1. What This Course Is About
At first, system design can seem difficult to organize. There are hundreds of technologies, thousands of possible architectures, and new options appear regularly, so it is hard to know what to learn first.
This course starts from a simpler observation: most large systems use the same small set of recurring solutions. These solutions are called system design patterns, and the course explains more than 60 of them.
Once you understand the patterns, you can examine an unfamiliar architecture and identify its parts. You can also design a new system by combining familiar patterns instead of memorizing complete architectures.
A pattern is not a technology: Redis is a technology, while cache-aside is a pattern for storing frequently used data in a cache, which is a faster temporary copy. The application checks this copy first and reads the database only when the data is missing. Each pattern connects a common problem, a reusable solution, and its costs, so these design decisions remain useful even when technologies change.
The first lesson, Thinking in Patterns, explains this idea in detail.
2. Who This Course Is For
This course is written for junior and mid-level software engineers. Data and AI engineers will also benefit because their systems often distribute work across several machines and services, so they use many of the same patterns.
You do not need experience with distributed systems because every new technical term is defined at first use. If you understand the basic purpose of a server, a database, and an HTTP request, you are ready to begin.
3. The Twelve Modules
The course uses one example throughout: an online store that begins with a single database and grows to one hundred million users, while each module addresses the next communication, storage, reliability, or scaling problem the store encounters.
| Module | What it covers |
|---|---|
| 1. Thinking in Patterns (you are here) | What patterns are, and the basic math used throughout the course. |
| 2. Moving Data | How services communicate: request-response, queues, pub/sub, and streams. |
| 3. Storing Data | How databases scale and survive failures: replication, sharding, and logs. |
| 4. Serving Data Fast | How caches make reads fast, and what they cost. |
| 5. Surviving Failure | What to do when calls hang, fail, or arrive twice. |
| 6. Growing Under Load | How to add capacity: scaling, load balancing, and connection pooling. |
| 7. Keeping Data Consistent | How multiple machines agree on data: transactions, sagas, and quorums. |
| 8. The Entry Point | How traffic enters the system: gateways, rate limits, CDNs, and proxies. |
| 9. Operating in Production | How to deploy, monitor, and roll back safely. |
| 10. Data-Intensive Systems | How to process large volumes of events: batch and stream processing. |
| 11. AI-Era Systems | How LLM and ML systems use these same patterns. |
| 12. Capstones | Four complete system designs that combine everything. |
4. How Each Lesson Works
Every pattern lesson follows the same structure, which lets you focus on each new design decision.
- The incident. The lesson begins with a realistic production problem and concrete numbers, so you can understand why the pattern is needed.
- The obvious fixes. You examine the simple solutions that engineers often try first and learn why they are not enough.
- The pattern. The lesson explains the solution and follows its operation step by step.
- A walkthrough with numbers. You apply the pattern to the original incident and calculate the improvement.
- Trade-offs. You examine the additional cost, delay, or complexity introduced by the pattern.
- When not to use it. You identify situations in which the pattern adds more complexity than value.
- A direct comparison. You compare the pattern with its closest alternative and learn how to choose between them.
- Real-world examples. You see where large companies use the pattern in production.
- The interview angle. You learn how an interviewer may test the pattern and practice a 30-second answer.
- A self-check quiz. You answer a few questions to confirm that you understood the lesson.
- A TL;DR card. You finish with a short summary of the pattern.
The TL;DR cards, which are short summaries, form a reference deck that you can review before an interview when you need to refresh the patterns quickly.
Lessons come in two sizes, full and compact, because a simple pattern requires fewer decisions and trade-offs. Each module also ends with a mini-capstone, which is a small system design that combines the patterns from that module.
5. This Module
Module 1 contains three short lessons that establish the method and calculations used throughout the course before introducing individual patterns.
- Thinking in Patterns: what a pattern is, and why learning patterns works better than memorizing architectures.
- The Five Questions: five questions that turn a vague design problem into a concrete plan.
- Back-of-the-Envelope Math: the four simple calculations this course uses again and again.
After you complete this module, the course begins applying the method in the Request-Response lesson.
Reading Progress
0%
On This Page
- What This Course Is About
- Who This Course Is For
- The Twelve Modules
- How Each Lesson Works
- This Module