Attendance Outbox Storage
Summary
Attendance converts selected aggregate domain events into integration-event outbox rows before committing business changes.
Audience
- Backend developers, integration engineers, QA engineers, and support engineers
Reference Content
Transaction boundary
The operational row contains message identity, unique event identity, event type, occurrence time, serialized payload, processing status, processed time, retry count, error text, correlation context, tenant context, source service, and version as defined by the shared outbox type. Exact payloads are outside this epic.
A unique event-identity index prevents duplicate stored event identities; status/time supports ordered polling. The outbox has no global tenant query filter because relay operations span pending work. Its tenant field is operational context, not a substitute for filter enforcement.
Atomic storage proves only that business changes and their outbox rows share an EF save. It does not prove broker delivery; relay status and retry state describe subsequent attempts.
Source References
microservices/src/attendance-service/Infrastructure/AttendanceDbContext.csmicroservices/src/attendance-service/Infrastructure/Persistence.csmicroservices/src/attendance-service/Infrastructure/OutboxRelayHostedService.cs
Related Articles
See Also
Keywords
- Attendance persistence
- EF Core
- PostgreSQL
Revision Information
- Status: Draft
- Last reviewed: 2026-07-15
- Review cycle: Quarterly