skip to content

How should the reversibility of a decision change the process and rigour you apply to making it?

level: seniorimportance: must knowfreq 60%

answer

  1. one-way vs two-way doors
  2. rigour proportional to reversal cost
  3. data gravity, published contracts
  4. convert one-way into two-way
  5. reversibility changes over time

basics

~20 s

Classify decisions by how hard they are to undo. Hard-to-undo ones deserve analysis, prototypes, review and a written record. Easy-to-undo ones should be made quickly by the team and corrected from real feedback, because deliberating costs more than being wrong.

solid answer

~50 s

Match process cost to reversal cost. Irreversible decisions — data model and identifier schemes, externally published contracts, tenancy and consistency models, service boundaries, vendor lock-in with data gravity, security and privacy models — warrant explicit options analysis, spikes or prototypes to retire risk, wide review, and a decision record capturing context, alternatives, consequences and assumptions. Reversible decisions — an internal library, a log format, a queue's tuning parameters, a UI layout — should be delegated and decided fast, since the feedback from shipping is better information than the debate. The two mistakes are symmetric and both expensive: heavyweight process on cheap decisions slows the organisation and pushes teams to route around governance; casual treatment of one-way doors produces migrations that cost years. Crucially, reversibility is not fixed — abstraction boundaries, contract versioning, dual-write and backfill tooling, feature flags and deployment automation actively convert one-way doors into two-way doors, and that conversion is itself a first-class architectural investment.

go deeper

for a junior

Say that hard-to-undo decisions deserve more thought, review and a written record, while easy-to-undo ones should be made quickly and changed if wrong.

for a middle

Classify concrete examples correctly and describe the process difference: alternatives plus prototype plus record for one-way doors, delegation with guardrails for two-way doors.

for a senior

Explain what creates irreversibility (data gravity, published contracts, semantic leakage, lock-in) and the techniques that convert one-way into two-way: isolation, contract versioning, migration tooling, flags, small blast radius.

for a principal

Treat it as operating-model design: define which decision classes require which forum, keep the escalation set small, and fund platform capabilities (migration tooling, contract versioning, rollout infrastructure) that systematically lower reversal cost across the whole estate.

## The principle The rigour of a decision process should be proportional to the **cost of being wrong**, which for architecture is dominated by the **cost of reversal**, not the cost of implementation. Amazon popularised the shorthand: **one-way doors** (walk through and you cannot come back — decide slowly, deliberately, with senior review) versus **two-way doors** (you can walk back — decide fast, let the team own it, learn from reality). ## What makes a decision hard to reverse - **Data gravity**: data already stored in a shape or a system. Migrating terabytes with zero downtime is a project, not a change. - **Published contracts**: once external clients depend on an API or event schema, changing it requires versioning, dual support and a deprecation window measured in quarters. - **Semantic leakage**: consistency guarantees, ordering, idempotency and error semantics get baked into every caller's logic. - **Organisational entanglement**: team boundaries drawn around components; reversing means reorganising people. - **Commercial lock-in**: contracts, licensing, proprietary features with no equivalent elsewhere. - **Compliance and audit**: decisions embedded in certified processes cannot be changed unilaterally. ## Process for one-way doors 1. **Name it as one-way explicitly** — the classification itself is the most valuable step, and it is cheap. 2. **Enumerate at least two real alternatives** with consequences; a decision with one option is a rationalisation. 3. **Retire the biggest uncertainty with a spike or prototype**, measured against the relevant quality-attribute scenario rather than argued by opinion. 4. **Seek diverse review** — operations, security, and the teams who will live with it. 5. **Record it**: context, options, decision, consequences, assumptions, and what evidence would make you revisit. 6. **Look for a way to make it two-way first** — often the highest-value move available. ## Process for two-way doors Delegate. Set a default, a time-box and a guardrail ("any queue library that supports at-least-once delivery and has a named owner"), then let the team decide. Escalating these is the classic failure of centralised architecture groups: it creates an approval queue, teaches teams that decisions are someone else's job, and blocks learning. ## Converting one-way doors into two-way doors This is the underrated skill: - **Isolate** the choice behind an interface or anti-corruption layer so callers do not depend on its specifics. - **Version contracts** from day one, with a deprecation policy, so changing them is routine. - **Build migration capability** — dual-write, backfill, shadow-read and comparison tooling turn a data-model change from a heroic project into a runbook. - **Feature flags and gradual rollout** allow trying and retreating in production. - **Keep the blast radius small** — apply the decision in one bounded context first, prove it, then propagate. - **Automate verification** with fitness functions so a reversal cannot silently break other constraints. ## Cautions - **People overestimate irreversibility** and use it to justify analysis paralysis. Ask concretely: what exactly would we have to do, and how long would it take? - **People also underestimate it** for things that feel like details — identifier format, timestamp and timezone semantics, URL structure, event schema evolution rules, tenancy isolation. - **Option-keeping is not free.** Preserving reversibility everywhere is speculative generality; spend that budget only where uncertainty is real and consequences are large. - **Reversibility is time-dependent**: a decision may be two-way during a private beta and one-way the moment external customers integrate. The classification must be revisited, not assumed permanent.

  • Give an example of turning a one-way door into a two-way door.
    Tenancy isolation. Instead of committing the whole platform to shared-schema multi-tenancy, route all data access through a tenant-scoped layer, keep tenant identity explicit on every record, and build backfill plus dual-read tooling. Moving one tenant to a dedicated database then becomes an operational task rather than a rewrite.
  • How do you decide when the extra process for a one-way door is not worth it?
    Estimate the reversal concretely — what work, how long, who is affected. If reversal is days of routine work with existing tooling, treat it as two-way however weighty it feels. Also weigh the cost of delay: a slow decision that blocks several teams can outweigh the risk it is guarding against.

saying these in an interview costs you the question

  • Applying the same heavyweight review to every decision, which slows delivery and drives teams around governance
  • Treating reversibility as a fixed property instead of something engineering investment can change
  • Calling a decision irreversible without articulating what reversing it would concretely require
  • Ignoring that a decision becomes one-way the moment external parties depend on it
  • Preserving optionality everywhere, producing speculative abstraction layers with no beneficiary

context