Chapter

What is software architecture

The foundations everything else rests on: what architecture actually is, the map of common styles, boundaries and coupling, and the split between domain and infrastructure.

Software Architecture 6 Lessons from courses

About this chapter

Before any style or pattern, you need the ideas the whole course sits on. This chapter explains what architecture is (and how it differs from design patterns), names the common styles you'll meet later, and introduces the one split everything depends on: keeping business logic apart from infrastructure.

Lessons from courses

  1. 1 What is software architecture? What is software architecture? The high-level structure of a system and the decisions that are expensive to change - and how it differs from design patterns.
  2. 2 A map of architectural styles A quick tour of common architectural styles: layered, hexagonal, event-driven and microservices, plus SOA, serverless and vertical slice.
  3. 3 Boundaries and coupling Coupling at the architecture level: draw good boundaries between modules, keep cohesion high inside and coupling low across them.
  4. 4 Domain vs infrastructure The core distinction in software architecture: business logic (domain) vs infrastructure (database, HTTP, framework). Why keeping them apart matters.
  5. 5 The layered architecture The classic layered architecture: presentation, application, domain and infrastructure, the dependency direction, and the common domain-database leak.
  6. 6 How to read this course Get the most from this software architecture course: principles vs styles, why examples are PHP and Laravel, and why architecture is trade-offs, not rules.
Software Architecture Go to course