Skip to main content

Expense Events Documentation

Summary​

Expense publishes three terminal lifecycle contracts through its transactional outbox: ExpenseApproved, ExpenseRejected, and ExpensePaid. Payroll and Notification are confirmed consumers. Expense has no inbound event subscriptions.

Audience​

Expense and integration developers, QA and support engineers, solution and security architects, and implementation partners.

Overview​

This section documents confirmed domain events, integration contracts, mappings, publishing, consumers, idempotency, ordering, retry, versioning, and test evidence without exposing broker topology or customer payload data.

Confirmed inventory​

  • Domain events: three.
  • Outbound integration contracts: three, all schema version 1.
  • Inbound Expense contracts or subscriptions: zero; Not implemented.
  • Downstream consumer services: Payroll and Notification.
  • Workflow and Document integration: HTTP boundaries, not Expense event subscriptions.
  • Exactly-once delivery: Not implemented.

Documentation map​

Requires confirmation​

Replay ownership, retry ceiling, dead-letter handling, global ordering, partitioning, monitoring ownership, schema-evolution governance, and delivery objectives require confirmation.

Source References​

  • microservices/src/expense-service/Domain/Expense/ExpenseDomainEvents.cs
  • microservices/src/expense-service/Domain/Expense/ExpenseClaim.cs
  • microservices/src/contracts/Events/ExpenseLifecycleEvents.cs
  • microservices/src/expense-service/Infrastructure/ExpenseDbContext.cs
  • microservices/src/expense-service/Messaging/OutboxRelayHostedService.cs
  • microservices/src/payroll-service/Messaging/PayrollReadModelConsumer.cs
  • microservices/src/notification-service/Application/EventNotificationResolver.cs

See Also​

Keywords​

  • Expense events
  • Events Overview
  • Integration contracts

Revision Information​

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