Lesson 123
Software Architecture & System Design
Styles · Scaling · The Toolkit
1:00How to take a system from one user to a million — covering scaling strategies, the request pipeline, caching, database sharding, architectural styles, and designing for failure.
By the end, you can
- Explain why "architecture" refers specifically to the decisions that are expensive to reverse.
- Contrast scaling up versus scaling out, and explain why stateless app servers are required for horizontal scaling.
- Trace a request through the standard pipeline (CDN, load balancer, app servers, cache, database, queue) and state each component's role.
- Explain the cache-aside read pattern and identify why cache invalidation is the hard part.
- Distinguish replication from sharding, and state what each technique scales.
- Compare monolith, microservices, and event-driven architectures by their wins and costs, and choose appropriately for a given context.
- Perform back-of-envelope estimates (average QPS, storage per month) given a traffic number.
- Convert an availability percentage to downtime per year, and name the mechanisms that achieve high availability.
- Apply the CAP theorem to explain the trade-off every distributed system must make.
Up next in Software Engineering & Web




