System architecture is the long-lived shape of the whole: domain boundaries, deploy map, how systems talk, and the rules for change. System design answers how we build this feature path. Architecture answers how the machine stays coherent when people and products keep moving.
Architecture views a lead should maintain
- Domain view: bounded contexts, ubiquitous language, ownership map.
- Runtime view: services, data stores, queues, external dependencies.
- Deployment view: environments, pipelines, regions, blast radius.
- Data view: sources of truth, retention, lineage, consistency expectations.
- Security view: trust boundaries, identity, secrets, compliance zones.
Monolith, modular monolith, services: choose with eyes open
There is no universal winner. A modular monolith with hard module boundaries often beats a premature microservice mesh for a small team. Services earn their keep when independent deployability, scaling, or team autonomy clearly outweigh distributed-system cost.
- Prefer modularity of design before distribution of deployment.
- Split on domain and change frequency, not on folder count.
- Pay the tax of distributed tracing, contracts, and on-call only when needed.
- Revisit splits quarterly with incident and delivery data, not slogans.
Integration styles and coupling
- Synchronous request/response: simple, but chains amplify latency and failure.
- Async events/messages: resilient decoupling, harder end-to-end reasoning.
- Shared data: fastest short-term, most expensive long-term coupling.
- Anti-corruption layers at messy boundaries with legacy or vendors.
Automate a few checks that protect architecture intent: dependency direction tests, contract tests, max service depth, schema compatibility, or bundle size budgets. Architecture that is not enforced drifts.
Lead responsibilities for system architecture
- Keep a living architecture page: diagram, owners, SLOs, top risks.
- Run a lightweight architecture review for cross-cutting changes.
- Fund debt that blocks safety or speed; kill gold-plating rewrites.
- Grow architects-in-practice on the team through design rotations.
- Align org structure with desired architecture (Conway awareness).
System architecture is a leadership product: it either reduces cognitive load or multiplies it.