Attendance Event Overview
Summary
Domain events describe completed mutations inside Attendance aggregates. Integration events are public shared contracts derived from those facts for asynchronous consumers.
Audience
- Developers, integration engineers, architects, QA engineers, and support engineers
Overview
Five aggregate events map one-to-one to shared contracts during SaveChangesAsync. Business changes and outbox rows share the local database transaction; broker and consumer work occur later.
Each mapped contract has a new event identity, event type, occurrence time, business-key correlation, source service, schema version 1, and numeric tenant/employee context in the contract-specific data. Causation and cross-service GUID tenant/user envelope fields are not populated by current mapping.
Delivery is effectively at least once from the consumer’s perspective: failed outbox rows remain eligible, and publication/acknowledgement boundaries allow duplicates. Event IDs support consumer deduplication. There is no source-backed global order or tenant partition guarantee.
Source References
microservices/src/attendance-service/Domain/Attendance/AttendanceDomainEvents.csmicroservices/src/attendance-service/Infrastructure/AttendanceDbContext.csmicroservices/src/shared-kernel/Messaging/OutboxProcessor.csmicroservices/src/shared-kernel/Messaging/RabbitMqEventBus.cs
Related Articles
See Also
Keywords
- Attendance events
- Integration contracts
- Eventual consistency
Revision Information
- Status: Draft
- Last reviewed: 2026-07-15
- Review cycle: Quarterly