Learn
Eight tracks of ideas, in a sensible order. Each topic has a lesson, diagrams you step through, and a quiz. 6 topics are ready.
Track 1
Start here
How to approach a design, the numbers that decide it, and what "scalable" and "available" mean in numbers.
- How to approach a system design problemA repeatable method for any design question, from the first requirement to the deep dives. The numbers decide the design, and going back to change it is normal.20 min
- Numbers every engineer should knowHow long common operations take, from a cache hit to a packet that crosses an ocean. Learn the sizes of the jumps, and measure them on your own machine.25 min
- Back-of-envelope estimationTurn a requirement into requests each second, bytes, bandwidth and servers in a few minutes. Use powers of ten, a few shortcuts and Little's law.30 min
- Performance vs scalability, scaling up vs scaling outA fast system and a scalable system are different things. Learn why more servers do not give equal gains, and what limits them, with Amdahl's law and the USL.25 min
- Availability in numbers: nines, SLOs, error budgetsWhat "99.9%" means in minutes and in failed requests. How SLIs, SLOs and SLAs differ, why dependencies cost nines, and how an error budget controls change.30 min
Track 2
Networking and communication
How a request travels, how services talk to each other, and how traffic is spread over servers.
No topics yet. This track is planned.
Track 3
Storage and databases
Data models, how storage engines work inside, transactions, and the special stores for blobs, search and time series.
No topics yet. This track is planned.
Track 4
Replication and partitioning
Copies of data for safety and speed, and splitting data so that it fits on many machines.
Track 5
Consistency and consensus
What "consistent" means, how machines agree on order and on a leader, and how transactions span services.
No topics yet. This track is planned.
Track 6
Caching
Where to put a cache, how to keep it correct, and what happens when one key gets all the traffic.
No topics yet. This track is planned.
Track 7
Messaging, streams and batch
Doing work later and elsewhere, delivery guarantees, logs, and processing data in large batches or as events arrive.
No topics yet. This track is planned.
Track 8
Reliability and operations
Failing well, protecting a service from overload, finding failures, and recovering from disasters.
No topics yet. This track is planned.
Track 9
Architecture patterns
How to divide a system into services, and the patterns that connect them.
No topics yet. This track is planned.
Track 10
Security
Who the caller is, what they can do, and how services trust each other.
No topics yet. This track is planned.