Attendance Event Idempotency and Ordering
Summary
Unique event identities enable consumer deduplication, but Attendance event delivery has no global ordering or exactly-once guarantee.
Audience
- Consumer developers, QA engineers, architects, and support engineers
Idempotent consumer flow
Attendance outbox enforces unique stored event identity. Payroll keeps a processed-event ledger and also compares occurrence time with its projection. Integration Service keeps a processed-event ledger and skips duplicates. Notification Service has event-ID deduplication and staleness handling as a shared capability, but it is not an Attendance consumer. Integration Service routes have their own idempotency and durable failure state.
Correlation groups lifecycle events by the Attendance business identity. Current mapping leaves causation empty. Correlation does not impose ordering.
Relay polling orders eligible rows by occurrence time, and consumers generally use one-at-a-time prefetch, but retries, multiple producers, broker redelivery, and independent queues mean no global or per-employee ordering guarantee is proven. No source-backed tenant partition key is configured. Consumers must use event identity and domain staleness/version checks rather than arrival order.
Source References
microservices/src/shared-kernel/Outbox/OutboxMessage.csmicroservices/src/payroll-service/Messaging/PayrollReadModelConsumer.csmicroservices/src/integration-service/Domain/IntegrationEntities.csmicroservices/src/integration-service/Orchestration/EventDispatcher.csmicroservices/src/notification-service/Application/NotificationDispatcher.cs
Related Articles
See Also
Keywords
- Attendance events
- Integration contracts
- Eventual consistency
Revision Information
- Status: Draft
- Last reviewed: 2026-07-15
- Review cycle: Quarterly