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