Expense Approval Events
Summary
Approval and rejection each have a domain event, one-to-one integration mapping, and the same outbox delivery path. Manual decisions and accepted workflow callbacks reach the same aggregate methods.
Confirmed mappings
| Transition | Domain event | Integration contract | Consumers |
|---|---|---|---|
| Pending to Approved | ExpenseApprovedDomainEvent | ExpenseApprovedEvent | Payroll, Notification |
| Pending to Rejected | ExpenseRejectedDomainEvent | ExpenseRejectedEvent | Payroll, Notification |
A duplicate workflow callback for an already-terminal claim is acknowledged without reapplying the decision and therefore does not re-emit the terminal event. Direct duplicate approval or an invalid transition returns a conflict before another event can be raised.
No separate workflow-approved integration contract exists.
Requires confirmation
Approval-event replay policy, correction events, and consumer reconciliation after an incorrect decision require confirmation.
Source References
microservices/src/expense-service/Domain/Expense/ExpenseClaim.csmicroservices/src/expense-service/Domain/Expense/ExpenseDomainEvents.csmicroservices/src/expense-service/Infrastructure/ExpenseDbContext.csmicroservices/src/contracts/Events/ExpenseLifecycleEvents.cs
Related Articles
See Also
Keywords
- Expense events
- Approval Events
- Integration contracts
Revision Information
- Status: Draft
- Last reviewed: 2026-07-16
- Review cycle: Quarterly