# Outbox Pattern for Event Dispatch ## Module Scanner ## Status VERIFIED ## Description Outbox pattern for reliable event dispatch with idempotent processing, dispatch tracking, and retry logic. ## Implementation Details - **Event Dispatcher**: - `src/Scanner/StellaOps.Scanner.WebService/Services/IReportEventDispatcher.cs` - `IReportEventDispatcher` interface for reliable event dispatch with idempotent processing - `src/Scanner/StellaOps.Scanner.WebService/Services/ReportEventDispatcher.cs` - `ReportEventDispatcher` implements the outbox pattern for reliable event dispatch with dispatch tracking and retry logic - **OCI Attestation Publisher**: - `src/Scanner/StellaOps.Scanner.WebService/Services/IOciAttestationPublisher.cs` - `IOciAttestationPublisher` interface for publishing attestation events to OCI registries - **Report Endpoints**: - `src/Scanner/StellaOps.Scanner.WebService/Endpoints/ReportEndpoints.cs` - `ReportEndpoints` triggers event dispatch for completed scan reports ## E2E Test Plan - [ ] Complete a scan and verify the report event dispatcher reliably publishes scan completion events - [ ] Simulate a transient failure during event dispatch and verify the retry logic reprocesses the event - [ ] Verify idempotent processing ensures duplicate events are not dispatched for the same scan - [ ] Verify dispatch tracking records the status of each dispatched event (pending, dispatched, failed) - [ ] Verify the outbox pattern guarantees at-least-once delivery for scan report events --- ## Verification | Check | Result | |-------|--------| | Tier 0 - Source files exist | PASS | | Tier 1 - Build + code review | PASS | | Tier 2 - Integration tests | PASS | | Verified | 2026-02-13T18:10:00Z |