ARC 6Prove Boundaries and DeliverChapters 23–26

Chapter 25 — Identify State That Does Not Fit DSM

Chapter objective: After this chapter, a developer can select technology from business invariants, failure consequences, and evidence requirements without defaulting to DSM because a problem is low-latency, distributed, or "shared."

Learning objectives

  1. Decide whether state is repairable before discussing collection type.
  2. Distinguish system of record, cache, history log, consensus coordination, and DSM.
  3. Write a reviewable reason for adopting or rejecting DSM.
  4. Detect dual-write, unbounded-state, and unobservable-repair anti-patterns.

Prerequisites

Case progress

The fulfillment team reviews orders, inventory deductions, route hints, shard owners, request counters, and audit events again. The goal is correct ownership of each state rather than larger DSM coverage.

Eliminate unsuitable responsibilities before choosing a collection

Decision tree for excluding unsuitable DSM state

Requirement Primary responsibility Why DSM is not primary
authoritative order/balance/inventory fact transactional database or fact service confirmed transactions cannot be rewritten by eventual convergence
complete replayable history event log or streaming platform DSM centers on current coordination state, not complete history
linearized configuration, election, or strong CAS consensus coordination service DSM can permit local success during a partition
low-latency read rebuilt from a fact source cache no need for domain merge, repair, and protocol identity
small, repairable coordination state with clear semantics DSM candidate Register, Lease, or CRDT may express the invariant

A candidate still needs bounded size, TTL/cleanup, schema evolution, observable failure, repair cost, security, capacity, and operating ownership.

Three direct rejection signals

  1. DSM and database both write authority: dual write without one authority and compensation adds another divergence layer.
  2. Unbounded state growth: full order history, logs, or analytical details make lifecycle and memory capacity uncontrollable.
  3. Unexplained failure window: "eventual consistency" does not answer two OK responses, old tokens, missed deltas, or slow consumers.

Final boundary of the running case

Counterexample and fault injection

Experiment

npm test -- --test-name-pattern="phase 6 assets"

In technology-selection-review.json, record invariant, failure cost, source of truth, decision, and counterfactual condition for eight state categories.

Experiment acceptance card

Field Content
Command Book static decision-asset test
Input or fault fact, history, strong coordination, cache, and repairable coordination state
Observable result every item has an adoption/rejection reason and a condition that would change the decision
Evidence level E1: design review combined later with target-system runtime evidence
This experiment does not prove That an alternative product meets SLA, security, cost, or team capability

Review

Next

Chapter 26 combines the method into an executable fulfillment control plane with faults, observation, and explicit boundaries.