Skip to main content

Domain contract assessment and calibration

Attempt independently before calibration. Score each category 0 absent/incorrect, 1 prompted/incomplete, 2 independent correct evidence with limits, 3 successful transfer to a fresh case. Every category requires 2 or more; the reference harness alone does not satisfy the integration categories.

Required evidence​

  • DD1 — Language and boundaries: preserve event-storming disagreements, three context-specific glossaries and the context map. Explain two overloaded terms and defend the aggregate scope.
  • DD2 — Invariants: hand-predict acceptance/refusal and immutable state for reserve/release/conflicting-retry traces. Explain terminal identities and retention limits.
  • DD3 — Implementation: pass the lab contract, add three independent traces and malformed payload fixtures, and preserve your first failure and repair.
  • DD4 — Translation: keep external schemas outside the domain; test unknown codes, version drift and units. Distinguish translation refusal, business refusal and uncertain external outcome.
  • DD5 — Persistence: demonstrate two readers on one revision, one successful compare-and-save and one conflict; reload and re-evaluate. Show the unrepaired lost-update trace and explain how the selected repository prevents it.
  • DD6 — Coordination: implement explicit intermediate states across reservation and payment contexts. Exercise duplicate, late and reordered outcomes and a failed compensation; retain an event/command trace, ownership and reconciliation policy. Preserve the original event catalog and design decisions.

Defense and repair​

After at least 48 hours, solve an unseen capacity/identity trace and translate a changed partner schema without reference code. Change a requirement to partial release or expiry and identify which tests and assumptions must change. Repair weak categories before progression; disclose assistance and retain independent attempts.

Calibration — open after attempting​

At capacity 3, reserve(a,2) passes, reserve(b,2) fails, release(a) passes, reserve(b,2) passes, and reserve(a,2) fails because a is terminal. Duplicate held reserve with the same quantity is a no-op; another quantity conflicts. Duplicate release is a no-op; release of an unknown ID is rejected.

H with units="002" translates to reserve quantity 2. A full pool may still refuse it. Unknown codes and v2 are not v1 commands. Unknown fields are rejected under this exercise's strict policy; changing that policy requires compatibility evidence rather than silently changing tests.

Two successful transitions against revision 7 do not establish concurrent safety. The second writer must conflict on save, then reload and re-evaluate. A payment timeout cannot be relabeled a decline. A late success after cancellation requires an explicit business response, potentially refund or reconciliation, not silent resurrection of a terminal reservation.

The reference is finite single-writer model evidence, not proof of the learner's repository or workflow. Event storming and stakeholder language cannot be replaced by invented implementation classes.