Architecture

What is Software Architecture?

The set of structural decisions about a system that are expensive to change later.

Definition

Architecture is the subset of design choices with the highest reversal cost: service boundaries, data ownership, synchronous versus event-driven communication, storage engines, deployment topology. Ralph Johnson's framing—architecture is the decisions you wish you could get right early—captures why these get documented in Architecture Decision Records rather than left implicit. Good architecture is driven by quality attributes (availability, latency, scalability, security, and cost) rather than by technology preference, and it explicitly trades them off, since no design maximizes all of them at once. Conway's Law is the reliable constraint: systems come to mirror the communication structure of the organizations that build them, so team topology is an architectural decision whether or not anyone treats it as one.

Keep the references coming

One email a week: new and trending developer tools, fresh comparisons, and what shipped. Unsubscribe in one click.