Module 037 min

Architecture: what versus how

Requirements say what must be true. Architecture says which pieces will be responsible — and how they are allowed to lean on each other.

After this module
  • You can separate a functional view (what must happen) from a physical view (what will do it), and allocate one to the other.
  • You know why an architecture diagram without its rejected alternatives is decoration.

Architecture is the set of decisions that are expensive to reverse: what the major elements are, what each is responsible for, and how they interact. Everything else is design, and design should stay cheap to change.

The useful discipline is to hold two pictures at once. The functional architecture describes behavior in verbs — capture, validate, decide, notify — with no technology in it. The physical architecture assigns those verbs to real elements: services, databases, devices, people. The mapping between them is where most architecture arguments actually happen.

FUNCTIONAL → PHYSICAL ALLOCATION FUNCTIONS (WHAT) F1 capture input F2 validate F3 decide / score F4 notify F5 record COMPONENTS (HOW) Gateway HTTP · auth · limits Decision service rules + model owns F3 Event log append-only · replayable allocation one function may live in more than one element — say so
The arrows are decisions. Each line is a claim about responsibility. When two teams think a different line exists, you get duplicated logic or a gap nobody owns.

3.1Decompose on responsibility, not on org chart

The default decomposition in most organizations is the team structure, which is why systems end up shaped like meetings. Conway's Law is descriptive, not a law of physics: your architecture will mirror your communication structure unless you deliberately choose otherwise.

Good boundaries have three properties:

Where you put a boundary is a trade, and trades come with consequences. Here is the same decision made three ways for a "risk scoring" capability.

Try it · boundary chooserthree placements

Inside the monolith — fastest to build and debug, one deploy, no network contract; but scaling and failure are shared with everything else.

There is a real cost to over-architecting, and it is easier to spot in hindsight: three layers of abstraction before the first user, an interface catalogue for a system with one consumer, a "platform" that is a wrapper around a database. The test is not "is this well structured?" but "does this decision buy me the ability to change something expensive later?" If it doesn't, it is design, and design should be cheap enough to throw away.

3.2Record the decision, not just the diagram

A diagram shows the current state. It does not show why, what was rejected, or what would have to be true to change it. That is what an architecture decision record is for, and it can be six lines:

# ADR-014 — Scoring runs as a separate service
Status:    accepted 2026-03-11
Context:   scoring changes weekly, the monolith ships daily; p95 budget 300 ms
Decision:  extract scoring behind an HTTP contract, owned by the risk team
Rejected:  in-monolith (blocks weekly change cadence); vendor API (data residency)
Revisit:   if call volume drops below 1k/day, fold it back in

Six lines like that, written when the decision is made, save a hundred messages eighteen months later. The "revisit" line is the one people forget — and the one that keeps an architecture honest.

3.3The views that earn their maintenance

ViewAnswersAudience
Context / boundaryWhat is inside, what do we design against?Everyone, including sponsors
Functional flowWhat happens, in what order, with what inputs?Engineers, testers, ops
AllocationWhich element owns which function?Teams, on-call, security review
Interface catalogueWhat crosses each boundary, in what format?Integrators, testers
Deployment / runtimeWhat actually runs where, and how it fails over?Ops, SRE, incident response

Draw the ones you will keep current. Four accurate views beat twelve stale ones, and a stale diagram is actively harmful — people make decisions from it.

The trap · architecture as a picture

If the only artefact is an image in a slide deck, the architecture is whatever the code did last sprint. Keep the decisions in text, versioned next to the code, and delete diagrams you no longer maintain. The test of an architecture document is whether a new engineer can answer "why is this like this?" without asking a person.

Check yourselfQuestion 1 of 1

What makes an architecture decision record useful eighteen months later?

60-second recap

  • Requirements are what; architecture is which elements own it. Keep the two views separate and allocate explicitly.
  • Decompose on cohesion, coupling and ownership — not on the org chart.
  • Every boundary is a trade. Write down the alternatives you rejected.
  • Maintain fewer views, but keep them true. A stale diagram is worse than none.