Overview
System architecture fails when it's designed for the scale the team hopes to eventually need rather than the scale the system actually requires today. An early-stage startup building a microservices architecture with service mesh, distributed tracing, and event-driven communication is building operational complexity for a scale they may never reach — while the team that should be shipping features is managing infrastructure. Architectural decisions must match the system's current constraints, with explicit upgrade paths when those constraints change.
The System Architecture Design Framework selects the right pattern for the actual constraints, documents decisions with their tradeoffs explicitly, and produces actionable specifications a team can build from.