Skip to content
Ameen Abozaid
SRC-003

Architecture trade-offs

  • 8 Lessons
  • 4 h practice (estimate)
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

  1. Identify the decisions that are expensive to reverse and spend design effort on them first.
  2. Evaluate options against prioritized quality attributes using a lightweight ATAM-style review.
  3. Account for complexity as a cost (cognitive load, operational burden, onboarding).
  4. Record trade-offs, risks, and sensitivity points in ADRs.

Lessons

  1. 01Every decision is a trade-off
  2. 02One-way and two-way doors
  3. 03Complexity budgets
  4. 04The cost of abstraction
  5. 05Lightweight architecture evaluation
  6. 06Risks, sensitivity points, and trade-off points
  7. 07Demo: evaluating three designs for order storage
  8. 08Demo: an architecture review that changes its mind

Lab and exercises

Lab

SRC-003-LAB1 · Option analysis

Outcomes: 1–4 · Time: ~2 h

  1. Take the utility tree from SRC-002; list the decisions for scaling the order subsystem and mark one-way doors.
  2. Define three candidate designs; describe each at its strongest.
  3. Evaluate each against the top scenarios with a lightweight ATAM-style review; include complexity and operational cost.
  4. Record risks, sensitivity points, and trade-off points.
  5. Write an ADR for the chosen design, including rejected options.

Acceptance: rejected options documented with honest strengths.

Exercises (case-based; six exercises)

IDOutcomeTask
SRC-003-EX011Sort twelve order-subsystem decisions into one-way and two-way doors and say where design effort should go.
SRC-003-EX022Evaluate "add a Kafka-based outbox" against two utility-tree scenarios using the scenario-by-option grid.
SRC-003-EX033Estimate the complexity cost (components, runbooks, pages, onboarding) of introducing a service mesh for a team of six.
SRC-003-EX043A colleague wants a generic repository layer "to swap databases". Argue for or against with costs.
SRC-003-EX054Classify four findings as risk, sensitivity point, or trade-off point and record each with scenario and owner.
SRC-003-EX062Review 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.

  1. 1Which decision is most like a one-way door?O1
  2. 2A common failure is:O1
  3. 3Which makes a door easier to reverse?O1
  4. 4In a lightweight ATAM-style review you walk through:O2
  5. 5The best input to an architecture evaluation is:O2
  6. 6Operational burden belongs in a comparison because:O3
  7. 7A weak reason for an abstraction layer is:O3
  8. 8A decision that improves one attribute and hurts another is a:O4
  9. 9A parameter whose value strongly changes an attribute (for example replica lag) is a:O4
  10. 10A rejected option in an ADR should be described:O2

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).

Type to search levels, phases, modules and lessons.