Leave Encashment Events
Summary
LeaveEncashedDomainEvent and LeaveEncashedEvent exist, but the end-to-end producer workflow and consumers are Foundation / Not implemented.
Audience
Developers, QA, architects, Payroll owners, and future encashment owners.
Reference Content
The Encashment aggregate factory raises LeaveEncashedDomainEvent, and LeaveDbContext maps it to LeaveEncashedEvent at schema version 1. The conceptual categories are tenant/user, Leave type and year, encashment identity, units, and optional amount. Financial values and formulas are intentionally not documented.
No application command, public API, approval workflow, scheduler, or confirmed code path invokes and saves the aggregate factory. No Payroll, Notification, Integration, or other service subscribes to LeaveEncashed. LeaveBalance has a separate Encash method that raises LeaveBalanceUpdated, but no orchestration atomically connects the balance and encashment aggregates.
The contract is therefore governance-significant but must not be treated as evidence of runtime publication or Payroll completion. Schema evolution should preserve compatibility even while the feature is incomplete.
Source References
- microservices/src/leave-service/Domain/Leave/LeaveExtras.cs
- microservices/src/leave-service/Domain/Leave/LeaveDomainEvents.cs
- microservices/src/leave-service/Domain/Leave/LeaveBalance.cs
- microservices/src/contracts/Events/LeaveLifecycleEvents.cs
- microservices/src/leave-service/Infrastructure/LeaveDbContext.cs
Related Articles
See Also
Keywords
- LeaveEncashed
- Foundation contract
- Missing orchestration
Revision Information
- Status: Draft
- Last reviewed: 2026-07-15
- Review cycle: Quarterly