Definition

Goals

Consists of

Roles

Four dimensions (Richards & Ford)

Richards and Ford define software architecture along four interlocking dimensions:

  1. Architecture style — the named topology chosen as a starting point (e.g. layered, microservices, event-driven)
  2. Architectural characteristics — the “-ilities” the system must support (scalability, availability, maintainability, …)
  3. Logical components — the building blocks implementing the system’s behavior (domains, entities, workflows)
  4. Architecture decisions — the rules that constrain how the system is constructed; they form the constraints and direct development teams

Three laws of software architecture

These three universal truths cut across all architecture work (Richards & Ford, FSA 2E):

  1. Everything in software architecture is a trade-off. — corollary: if you think you’ve found something that isn’t a trade-off, you just haven’t identified it yet.
  2. Why is more important than how. — decisions made in context; the rationale (including trade-offs considered) matters more than the mechanism.
  3. Most architecture decisions aren’t binary but rather exist on a spectrum between extremes.

There are no right or wrong answers in architecture — only trade-offs.

Neal Ford

Additional literature

Resource

Books

Articles

Talks