Skip to content

06 — Architecture Principles

Driving question: Which design decisions deserve architectural status?

Learning objectives

  • Define architecture in terms of high-impact structural decisions.
  • Connect architecture to quality attributes and constraints.
  • Distinguish logical, process, deployment, and development views.
  • Recognize architecture as evolving rather than frozen.

Architecture and significance

An architectural decision has unusually broad or costly consequences. Examples include:

  • choosing the primary decomposition;
  • establishing dependency rules;
  • defining data ownership;
  • selecting communication styles;
  • deciding consistency and transaction boundaries;
  • introducing a plugin or extension mechanism.

Quality-attribute scenarios

Instead of “the system must be scalable,” use a scenario:

Under a peak load of X requests/s, when service Y becomes unavailable, the system shall continue accepting operations Z with bounded latency and no loss of acknowledged data.

Patterns and tactics are then evaluated against concrete scenarios.

Design / research exercise

Write three quality-attribute scenarios for an existing system. For each, identify the architectural decisions that most strongly affect the response.

Suggested reading

  • Bass, Clements, Kazman, Software Architecture in Practice.