Skip to main content

Expense Outbox and Processed-Event Storage

Summary

Outbox messages persist event identity, type, serialized contract, delivery status, retry/error evidence, correlation, source, occurrence, and processing time. Event identity is unique; status/occurrence is indexed for relay scans. Pending and failed records are selected oldest-first.

Audience

Backend developers, database reviewers, QA, architects, DevOps, support, and implementation teams.

Confirmed persistence

Outbox messages persist event identity, type, serialized contract, delivery status, retry/error evidence, correlation, source, occurrence, and processing time. Event identity is unique; status/occurrence is indexed for relay scans. Pending and failed records are selected oldest-first.

The processed-event ledger has its own identity and a unique integration-event identity for future inbound idempotency. No Expense inbound consumer currently uses it.

Outbox and processed-event stores have no tenant query filter in the confirmed model. Access control, retention, replay, dead-letter, and cross-tenant operational governance require confirmation.

Requires confirmation

Production migration governance, retention, archival, masking, performance targets, concurrency roadmap, operational-store access, and rollback ownership remain unconfirmed unless narrowed above.

Source References

  • microservices/src/expense-service/Infrastructure/ExpenseDbContext.cs
  • microservices/src/expense-service/Infrastructure/Persistence.cs

See Also

Keywords

  • Expense database
  • Outbox Storage

Revision Information

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