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.