Skip to main content

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

See Also

Keywords

  • LeaveEncashed
  • Foundation contract
  • Missing orchestration

Revision Information

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