Skip to main content

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.cs
  • microservices/src/attendance-service/Infrastructure/AttendanceDbContext.cs
  • microservices/src/shared-kernel/Messaging/OutboxProcessor.cs
  • microservices/src/shared-kernel/Messaging/RabbitMqEventBus.cs

See Also

Keywords

  • Attendance events
  • Integration contracts
  • Eventual consistency

Revision Information

  • Status: Draft
  • Last reviewed: 2026-07-15
  • Review cycle: Quarterly