Architecture#
Architecture is the shape of a system: how components are organized, how they talk, how they fail, and how they evolve. The operator reads architecture in two directions; to map the target’s terrain on contact, and to design tooling that survives contact when the operator is the one shipping it.
Decisions made at this layer outlive any single piece of code. A poor architecture leaves an attacker with seams to pivot through and a defender with blind spots they cannot patch. The operator treats architecture as part of the mission plan, not an after-thought.
Separation of concerns, cohesion, coupling, SOLID. The discipline that decides which design survives contact.
Monoliths, microservices, event-driven, hexagonal, layered, peer-to-peer, serverless. Shapes the operator recognises on target.
How services talk. Synchronous vs. asynchronous, request/response vs. event, HTTP, gRPC, messaging, streams.
Modeling, storage, ownership, schema evolution. The collection the operator stands up today is queried long after.
Timeouts, retries, circuit breakers, bulkheads, idempotency, graceful degradation. What tools deliver when the network is hostile.
Vertical and horizontal scaling, caching, sharding, queues. Adding resources adds capacity, or it does not.
Defense in depth, authn/authz, secrets, crypto, supply chain, audit. Controls baked in at design time.
Fallacies, consistency, consensus, partial failure. Properties that held in one process get hard across many.