Saga outcome and replay evidence
This required 22–32-hour package strengthens guided Labs 3–4: lessons/predictions 5–7 hours, implementation and recovery experiments 10–15, assessment/repair 7–10. Reuse the original outbox/consumer work rather than duplicate it. Estimates await semester reconciliation and learner pilots.
Prerequisite bridge
Review immutable events, domain identity, state machines, outbox/inbox boundaries, uncertain outcomes and compensation. Bring Module 02's distinction between abort and post-transfer recovery. Completion is a business claim, not simply an empty queue.
Sequence
- Unknown outcomes.
- Compensation intent.
- Poison-message replay.
- Implement saga-outcome-contracts.zip using Python 3 standard library. Run
python3 -B check.py starterbefore reference calibration. - Complete EV1–EV6.
The reference tests 24 participant-outcome/timeout permutations, duplicate reports, late success, partial compensation, contradictions and invalid transitions. It models a coordinator and two already-requested participant operations, not durable participants or actual message transport. Original event contracts, crash-boundary outbox/consumer work, three-service workflow and poison-message operations remain required.