Expense Notification Events
Summary
Notification subscribes to ExpenseApproved, ExpenseRejected, and ExpensePaid. Each supported event can resolve to a notification intent; delivery is then owned by Notification rather than Expense.
Confirmed separation
The resolver reads the shared contract and prepares lifecycle-specific template variables. The recipient is derived from the claimant reference. Email delivery is available only when an address is present; the Expense mapper currently leaves that optional contract field empty, so source does not establish email delivery for ordinary broker-published Expense events.
The dispatcher checks its processed-event ledger before creating messages. Duplicate identities are skipped. Stale-event behavior and channel delivery retries are Notification policies, separate from Expense outbox retry.
Not implemented
- Direct notification sending by Expense
- Notification delivery acknowledgement back to Expense
- Expense-owned notification retry or delivery ledger
- Guaranteed email delivery for Expense events
Requires confirmation
Recipient enrichment, channel guarantees, notification template ownership, delivery objectives, and failure escalation require confirmation.
Source References
microservices/src/notification-service/Messaging/NotificationEventConsumer.csmicroservices/src/notification-service/Application/EventNotificationResolver.csmicroservices/src/notification-service/Application/NotificationDispatcher.csmicroservices/src/notification-service/Infrastructure/NotificationDbContext.csmicroservices/scripts/smoke-expense.ps1
Related Articles
See Also
Keywords
- Expense events
- Notification Events
- Integration contracts
Revision Information
- Status: Draft
- Last reviewed: 2026-07-16
- Review cycle: Quarterly