Architecture trade-offs
On this page 9 topics
Overview
Topics
- Complexity budgets
- cost of abstraction
- reversible vs irreversible decisions
Learn first
4 h of practice (estimate)
Learning outcomes
- Identify the decisions that are expensive to reverse and spend design effort on them first.
- Evaluate options against prioritized quality attributes using a lightweight ATAM-style review.
- Account for complexity as a cost (cognitive load, operational burden, onboarding).
- Record trade-offs, risks, and sensitivity points in ADRs.
Lessons
Lab and exercises
Lab
SRC-003-LAB1 · Option analysis
Outcomes: 1–4 · Time: ~2 h
- Take the utility tree from SRC-002; list the decisions for scaling the order subsystem and mark one-way doors.
- Define three candidate designs; describe each at its strongest.
- Evaluate each against the top scenarios with a lightweight ATAM-style review; include complexity and operational cost.
- Record risks, sensitivity points, and trade-off points.
- Write an ADR for the chosen design, including rejected options.
Acceptance: rejected options documented with honest strengths.
Exercises (case-based; six exercises)
| ID | Outcome | Task |
|---|---|---|
| SRC-003-EX01 | 1 | Sort twelve order-subsystem decisions into one-way and two-way doors and say where design effort should go. |
| SRC-003-EX02 | 2 | Evaluate "add a Kafka-based outbox" against two utility-tree scenarios using the scenario-by-option grid. |
| SRC-003-EX03 | 3 | Estimate the complexity cost (components, runbooks, pages, onboarding) of introducing a service mesh for a team of six. |
| SRC-003-EX04 | 3 | A colleague wants a generic repository layer "to swap databases". Argue for or against with costs. |
| SRC-003-EX05 | 4 | Classify four findings as risk, sensitivity point, or trade-off point and record each with scenario and owner. |
| SRC-003-EX06 | 2 | Review an ADR with a strawman alternative; rewrite the alternative honestly and re-decide. |
Show solutions
- EX01 One-way: shard key, public API shape, event schemas, cloud region and vendor, data model. Two-way: library choices, internal refactors, pool sizes. Spend analysis on the first group; make the second quickly and revisit.
- EX02 Outbox improves durability and consistency of event publishing (+), adds a relay process and lag monitoring (-), neutral on checkout latency; the grid names the reason per cell.
- EX03 Adds control plane, sidecars, certificate rotation, new failure modes, mesh-specific debugging; likely not worth it for six engineers unless a requirement (mTLS everywhere) demands it.
- EX04 Against: JPA and SQL features leak through; cost is indirection and lost features; benefit speculative. For: only if two real implementations are needed now.
- EX05 Examples: single primary at 10x peak is a risk; replica lag is a sensitivity point; synchronous replication is a trade-off point (durability vs commit latency).
- EX06 A fair alternative states its real benefit (for example simpler operations), then compares on scenarios; the decision may change or be confirmed with stronger reasons.
Outcome 4 is also covered by the lab ADR.
Workplace evidence: an ADR or design review where you recommended against a more complex option.
Quiz
Outcomes: O1 one-way and two-way doors · O2 lightweight evaluation · O3 complexity as cost · O4 trade-offs in ADRs.
A self-check for you: nothing is graded, saved or sent anywhere. Choose an answer, then check it. You can try again as often as you like.
Practical part
Six case exercises SRC-003-EX01 to EX06 plus the lab. Pass: quiz at least 8/10, at least five exercises correct, and an ADR defended against assessor challenges with honest rejected options.
Common mistakes
Strawman alternatives; ignoring operational cost; deciding reversible things slowly and irreversible things quickly.
Assessment
ADR defense with assessor challenges.
Workplace evidence
An ADR or design review where you recommended against a more complex option.
Career relevance
Solution options (ARC-033) and decision-making under uncertainty (SRA-013).