SkillByAIOpen interactive version →

Lesson 3 / 25

The Architecture Spectrum and Conway's Law

Place modular monoliths, SOA, microservices and serverless on one spectrum.

Not a binary choice

Architectures sit on a spectrum. A big ball of mud has no internal boundaries. A modular monolith is deployed as one unit but divided into well-defined modules with enforced boundaries and private data. Service-oriented architecture (SOA), popular in the 2000s, split enterprise systems into services, often connected through a central enterprise service bus with shared schemas. Microservices push for fine-grained, independently deployable services with decentralised data and "smart endpoints, dumb pipes". Serverless and function-based designs split further into functions triggered by events. Conway's law (Melvin Conway, 1968) observes that systems mirror the communication structure of the organisations that build them: three teams tend to produce three components. The inverse Conway manoeuvre shapes teams deliberately to get the architecture you want.

The spectrum at a glance

Boundaries get stronger and operational cost rises as you move down.

style               deploy units   boundaries          data              typical team count
------------------  -------------  ------------------  ----------------  ------------------
big ball of mud     1              none                shared, tangled   any (painful)
modular monolith    1              enforced modules    schema per module 1-10
SOA                 few-many       services + ESB      often shared      enterprise
microservices       many           network + contracts DB per service    many autonomous
serverless          very many      functions + events  managed stores    small-many

Use Conway's law on purpose

If two teams must coordinate every release of "their" service, the boundary is in the wrong place, either in the code or in the org chart. Fix one to match the other.

Quick check: What does Conway's law state?

  • Systems double in complexity every year
  • Every service needs its own database
  • System designs tend to mirror the communication structure of the organisation that builds them
  • Monoliths cannot scale
Answer

System designs tend to mirror the communication structure of the organisation that builds them — Conway observed that organisations produce designs that copy their communication structures.