Tradeoff Analysis Clinic
Retrieval Prompts
- State the first law of software architecture in one sentence, closed-book.
- Name five common tradeoff pairs. For each, give a system where the unpopular side was the right choice.
- What is the buys/spends template? Why is "alternatives considered" part of it?
- Define one-way door and two-way door. Why does each deserve a different review weight?
- Give two ways the simplicity ↔ flexibility tradeoff sneaks into a codebase without anyone noticing.
Compare and Distinguish
- Best practice vs contextual answer. Why does an imported best practice sometimes fail? What would you add before using one?
- Two-way door vs cheap decision. Are all cheap decisions two-way? Are all two-way decisions cheap?
- Consistency ↔ availability vs latency ↔ availability. Name a case where you make different choices for each.
- Simplicity vs underengineering. When does "simple enough" become "missing"?
- Cost of a decision vs cost of reversing a decision. When are they very different, and what does that imply for review weight?
Common Mistake Check
Identify what is missing or wrong:
- A proposal says "we will adopt event-driven architecture for service-to-service communication." It lists 5 benefits. It lists no costs and no alternatives.
- An architect claims "the new system is both more consistent and more available under failure." No partition-behavior section follows.
- A team applies the circuit-breaker pattern to every inter-service call, citing resilience. Half their failures now come from legitimate requests being rejected during healthy windows.
- A proposal classifies a choice as two-way but notes the commitment involves signing a 3-year vendor contract.
- "We picked microservices because it scales better." No scale numbers, no concurrency shape, no top-3 characteristic link.
- "We can always migrate later." No migration plan. No fitness function. No revisit condition.
For each, write the specific repair: missing costs, missing alternatives, over-applied pattern, misclassified door, evidence-free claim, magical-thinking-level reversibility.
Mini Application - Tradeoff Defenses
Pick two of the following proposals. For each, produce a full buys/spends writeup: the proposal, buys, spends, top-3 characteristic mapping, at least two alternatives with their buys/spends, and a one-paragraph decision with reasoning. Use a realistic system of your choice.
Proposal 1. "Split the monolithic orders service into orders-read and orders-write, with separate deployables and databases."
Proposal 2. "Move from strong consistency (single-region Postgres) to eventual consistency (multi-region replicated store) for the product catalog."
Proposal 3. "Replace REST between internal services with gRPC for all new services; keep REST at the edge."
Proposal 4. "Introduce an event bus between the order service and the shipping service, so orders are queued instead of synchronously calling shipping."
Proposal 5. "Adopt a service mesh for all internal traffic."
Proposal 6. "Move from a shared CI pipeline to per-service pipelines with independent deployability."
Deliverable for each: one-page buys/spends writeup with alternatives and an explicit decision. The decision is allowed to be "no" or "not yet."
Scenario Drills - Reversibility Classification
For each decision, classify one-way or two-way, estimate reversal cost, and name one concrete condition under which you would revisit:
- Choosing PostgreSQL as the primary store for a new service.
- Adopting Protobuf as the wire format for internal events.
- Choosing TypeScript over JavaScript for a new frontend.
- Choosing AWS as the cloud provider for a greenfield platform.
- Introducing feature flags via an in-house library vs a SaaS vendor.
- Using shared auth tokens between two services in the same trust zone.
- Embedding a specific ORM library across all services.
- Publishing a public REST API with URL-path versioning (
/v1/...).
Expect disagreements with yourself on 2-3 of them. That is the point of the drill.
Evidence Check
This page is complete only if, given a new architectural proposal:
- you can produce a full buys/spends writeup in under 30 minutes
- you never accept a proposal that lists zero costs
- you name at least two alternatives for any non-trivial decision
- you can classify a decision as one-way or two-way and defend the classification in one sentence
- you can point to specific characteristics from your top-3 that the decision supports or spends
- you can articulate a condition under which you would revisit the decision, for any one-way call