Real-World Systems
Lessons on the systems everyone uses but few have designed: collaborative documents, email, maps, stock exchanges, payments, monitoring, plus the concepts behind them.
18 lessons3 h 15 minAdvanced
What you'll learn
0 of 18 lessons complete
Who this is for and what you will be able to do
Who this is for
Developers who have worked through the basics and the classic designs, and want to see how larger, more specialised systems are put together. Also useful for senior design interviews.
After this course you will be able to
- Design collaborative editing, email, maps and nearby search at a sensible level of detail
- Explain how an exchange matches orders in microseconds and how a flash sale survives a traffic spike
- Describe how payments, cross-border transfers and reconciliation work
- Design a metrics and alerting system, and diagnose a slow machine methodically
- Secure an API and handle an outage the way mature teams do
Topics it coversPaymentsAPI GatewayDeploymentEvent Driven ArchitectureGeospatialIdempotencyMicroservicesObservabilityAll topics
How a lesson works
Interactive diagram
See how each component connects, then run a request through it.
Plain-words toggle
Switch between the technical explanation and a plain-language one.
Practice design
Change a design of your own in the builder and see how it holds up.
Quiz and exercise
Test your understanding before moving on.
Go deeper
These lessons are written from scratch. The books below are excellent next reads.
- Designing Data-Intensive Applicationsby Martin Kleppmannthe foundations behind almost every lesson here
- Site Reliability Engineeringby Google SRE teamfree; monitoring, incidents and postmortems
- OWASP API Security Projectby OWASPfree; the most common API security mistakes
- System Design Interview, An Insider's Guide (volume 2)by Alex Xuworked designs for several of these systems