Trade-Off Analysis Framework
Apply a structured method to evaluate trade-offs in system design decisions.

Begin by listing all known requirements, constraints, and goals for the system component under design. Include non-functional needs like latency, availability, and cost alongside functional ones. Clarify which requirements are hard limits versus soft preferences. This step ensures the trade-off space is fully visible before weighing options.
Next, define candidate design approaches and list the primary pros and cons for each. Focus on measurable impacts: how each option affects latency under load, failure modes, operational complexity, and future flexibility. Avoid vague terms—use concrete outcomes like 'increases write latency by ~x ms' or 'removes single point of failure but adds coordination overhead'.
Finally, rank each option against core objectives using a consistent metric or scoring method. Assign weights to objectives based on business impact and system context. Document assumptions and risks, and plan how to reverse or adapt the choice if real-world data contradicts expectations. This creates accountability and enables learning over time.
Key points
- List requirements, constraints, and goals first.
- Compare options using measurable impacts.
- Document assumptions and reversal paths.