Module 3: Event-Driven Architecture: Guided Labs
Lab 1: Event Contract Design
Define commands, facts, identities, ordering keys, schemas, ownership, compatibility, and retention for one workflow. Reject events that expose internal rows or ambiguous intent.
Lab 2: Outbox and Idempotent Consumer
Implement atomic domain/outbox persistence, an at-least-once relay, and consumer deduplication. Crash at every boundary and verify one semantic effect.
Lab 3: Saga State Machine
Coordinate three services with explicit states, timeouts, compensation, irreversibility, and operator intervention. Test duplicate and out-of-order events.
Lab 4: Poison Message Operations
Quarantine an invalid message, alert, diagnose, repair code or data, replay safely, and document ownership and retention.
Evidence: schemas, state diagrams, failure tests, telemetry, and replay record.
Outcome and recovery core
Use the saga extension for explicit unknown outcomes and replay operations. The sequential coordinator model does not replace three-service persistence, crash-boundary or actual quarantine/replay evidence.