The styles and system-level decisions an architect makes — what architecture is and how to weigh trade-offs, the styles (monolith, layered, microservices, serverless, SOA), how services communicate, and the distributed-systems fundamentals (CAP, scaling, caching, resilience) that decide whether a design survives real load and failure.
Before you start
This is a concepts-and-trade-offs course — no setup required. It reasons about structure, styles, and distributed-systems behavior rather than one language’s syntax. Development experience helps; the roadmap assumes you can already build software. Pairs naturally with the Design Patterns course.
What Is Software Architecture?
Architecture is the set of decisions that are expensive to change later. Learn to reason about quality attributes and trade-offs — and to record the decisions you make.
Monoliths & Layered Architecture
Most systems start here, and many should stay. Understand client/server, the layered style, and why a well-structured monolith beats premature microservices.
Microservices
Microservices trade simplicity for independent scaling and deployment. Learn where the boundaries go, what you gain, and the significant costs most teams underestimate.
Serverless & SOA
Two more styles worth knowing: serverless (functions that scale to zero and bill per use) and service-oriented architecture (microservices’ enterprise ancestor).
How Services Communicate
Once a system is more than one process, how the parts talk becomes an architectural decision. Synchronous vs. asynchronous, the protocols, and the gateway in front.
Distributed Systems Fundamentals
The moment your system spans machines, physics gets a vote. The CAP theorem, consistency choices, and how data is partitioned and replicated across nodes.
Scalability & Caching
How a system grows to meet load. Scale up vs. out, spread traffic with load balancing, and cut work with caching — the highest-leverage performance lever there is.
Resilience & Observability
Distributed systems fail partially and constantly. Design so failure is contained, not catastrophic — and so you can actually see what’s happening in production.