system design courseArchitecture
How to cut a system into services, and when not to cut it at all.
5 chapters18 lessonsabout 1 hour
One deployable unit vs many small independent services, each with real trade-offs.
- What a Monolith Really Is2 min
- What Microservices Buy and What They Cost2 min
- The Distributed Monolith Trap2 min
- How to Actually Migrate3 min
Single entry point for all client traffic. Auth, routing, rate limiting, and aggregation in one layer.
- The Front Door2 min
- Cross-Cutting Concerns, Done Once2 min
- Gateway vs Load Balancer vs BFF3 min
Separate read and write models; store state as an ordered log of events instead of current values.
- Splitting Reads from Writes2 min
- The Event Log as the Source of Truth2 min
- Projections and Replay3 min
- When This Is Overkill2 min
Throttle requests per user/IP to protect services from abuse and overload.
- Why You Throttle2 min
- The Algorithms3 min
- Making Limits Hold Across a Fleet2 min
- Telling Clients No, Usefully2 min
Automatically stop calling a failing dependency to give it time to recover.
- How Failures Cascade2 min
- Closed, Open, Half-Open3 min
- Tuning and Fallbacks3 min