Helpdesk Event Idempotency
Producer side
Each event construction assigns a new EventId. The Helpdesk outbox mapping enforces unique event identity at persistence level. No endpoint idempotency key, deterministic event ID or duplicate-command suppression was found. Repeating a successful lifecycle request can therefore create a different event ID if the business operation itself permits repetition.
The Helpdesk schema contains ProcessedIntegrationEvent, but no Helpdesk event consumer or writer using that set was found; it does not provide producer deduplication.
Notification consumer side
Notification Dispatcher queries its own processed-event table by EventId before work and records the outcome after processing. A unique EventId index supports duplicate suppression. This is consumer-side idempotency, not exactly-once transport.
There remains a concurrency window between the initial existence check and final insert; the unique constraint is the final guard, and an unexpected conflict would flow through consumer failure/requeue handling.
Source References
microservices/src/helpdesk-service/Infrastructure/Persistence.csmicroservices/src/helpdesk-service/Infrastructure/HelpdeskDbContext.csmicroservices/src/notification-service/Application/NotificationDispatcher.csmicroservices/src/notification-service/Infrastructure/NotificationDbContext.cs
Related Articles
Revision Information
Draft source-backed documentation reviewed on 2026-07-20; next quarterly review is 2026-10-20.