Architecture patterns
The framing to internalise before any of the content: patterns are vocabulary, not virtue. You get points for naming the pattern a design already implies, for using a shared name to speed up a conversation, and for knowing when a pattern is overkill. You lose points for pattern-driven design. Interviewers at this level are often testing for restraint, not for the catalog.
This chapter also carries the org-design vocabulary, because at staff and lead level architecture and org structure are the same conversation. Conway's law runs both directions, and the inverse Conway maneuver is the tool.
What this chapter covers
- [todo] SOLID with the mature caveats, and its translation out of OO
- [todo] The GoF subset that actually appears, each with its one-line "when"
- [done] The repository pattern, and the argument against
- [todo] Hexagonal, Clean and Onion as the same idea with different diagrams
- [done] CQRS: the adoption ladder
- [todo] The five real fixes for CQRS eventual consistency
- [todo] Event sourcing: event store schema, optimistic concurrency, snapshots, upcasting
- [todo] Crypto-shredding for GDPR, and why Kafka is not an event store
- [todo] Sagas: orchestration vs choreography, with compensation code
- [todo] The transactional outbox, with SQL and Debezium config
- [todo] Vertical slice architecture as the counterpoint to layering
- [todo] The anti-pattern catalog: anemic domain, distributed monolith, premature abstraction
- [todo] Refactoring vocabulary: strangler fig, branch by abstraction, seams, characterization tests
- [todo] Bounded contexts, ubiquitous language and the anti-corruption layer
- [todo] Aggregates as consistency boundaries
- [todo] Event storming, worked on a real domain
- [done] Modular monolith vs microservices
- [done] Team Topologies and splitting a team
- [todo] Decision machinery: one-way doors, DACI, ADRs, C4
- [todo] The standards reference card, with the critique of each framework
Source: §29, §31, §35, §42.