SA-201a · Module 2

The Trade-off Framework

4 min read

A trade-off framework is a structured approach to making architecture decisions that names every option, every cost, every benefit, and every risk — before the decision is made. The framework does not make the decision for you. It makes the decision defensible. When someone in a design review asks "why did you choose event-driven over request-response?" the answer is not "because it is better." The answer is a documented analysis with specific trade-offs evaluated against specific requirements.

  1. Step 1: Define the Decision State the architectural decision clearly. "We need to choose the communication pattern between the order service and the inventory service." Scope the decision precisely. A decision that is too broad ("what should our architecture be?") cannot be analyzed. A decision that is too narrow ("should we use HTTP or gRPC?") misses the context.
  2. Step 2: Identify Options List at least three viable approaches. Synchronous request-response. Asynchronous messaging. Event-driven with eventual consistency. If you can only identify one option, you have not explored the space. If you identify more than five, you need to narrow the requirements.
  3. Step 3: Evaluate Against Criteria Define the evaluation criteria from the business and technical requirements: latency tolerance, consistency requirements, failure handling, team expertise, operational complexity. Score each option against each criterion. Use specific evidence, not general impressions. "Event-driven adds 200ms of latency from queue processing" is an evaluation. "Event-driven is slower" is not.
  4. Step 4: Assess Reversibility For each option, determine how difficult it would be to change course after implementation. Synchronous-to-asynchronous is a moderate refactor. Monolith-to-microservices is a major rearchitecture. Irreversible decisions deserve proportionally more analysis time. Easily reversible decisions can tolerate faster commitment.
  5. Step 5: Recommend with Rationale State the recommendation, the criteria it satisfies, the trade-offs it accepts, and the conditions under which the decision should be revisited. "We recommend asynchronous messaging because it satisfies the 99.9% availability requirement while accepting eventual consistency with a 2-second propagation delay. If the consistency requirement changes to strong consistency, this decision should be revisited."