Architecture
Decisions that are expensive to reverse — distributed systems, event-driven design, resilience, and how to reason about a system before it exists.
- Service DecompositionWhat splitting a monolith into services actually buys, argued honestly in both directions — including the concrete conditions under which not splitting is the better call.
- Gateway & Load BalancingHow each load-balancing algorithm actually behaves once backends stop being identical, and the health-check condition that decides when a sick instance gets taken out of rotation.
- Domain-Driven DesignWhy a boundary drawn around a business capability outlives one drawn around a technical layer, and how to find it by watching where the language changes.
- Event-Driven ArchitectureWhat a service gives up when a synchronous call becomes an event it fires and forgets — and the specific things you have to build back to recover the traceability that call had for free.
- Resilience PatternsWhy a retry without a budget makes an overloaded dependency worse, and the bound — timeout, retry budget, circuit breaker — that turns a retry back into a fix instead of an amplifier.
- Multi-TenancyThe isolation guarantee at each layer of a shared system, why the data layer is a correctness and trust problem before it's a cost one, and what one noisy tenant does to everyone sharing the system with them.
- Repository Layout — Monorepo vs PolyrepoThe trade-off repository layout actually encodes — coupling cost against coordination cost — derived without recommending a specific build tool.