Skip to main content

LMS Outbox Storage

Summary​

Source-backed outbox persistence, state, retry metadata, and transaction-boundary reference.

Audience​

Engineering, QA, support, architecture, security, and integration reviewers.

Reference Content​

OutboxMessage is a shared-kernel persisted object with message identity, unique event identity, event type, occurrence/processing time, lifecycle status, retry count, bounded error metadata, correlation, optional tenant reference, source service, and serialized payload. Payload contents are intentionally excluded.

Unique event identity protects duplicate event records. Status-plus-occurrence supports pending/failed selection. The store queries pending or failed records in occurrence order and applies a caller-supplied batch size; processed/failed updates use separate SaveChanges calls.

Outbox has no global tenant query filter. No Training-hosted relay invocation, dead-letter store, cleanup, replay API, or delivery guarantee was found. Local staging is transactional with business changes only when both are tracked before the same SaveChanges call.

Source References​

  • microservices/src/shared-kernel/Outbox/OutboxMessage.cs
  • microservices/src/shared-kernel/Outbox/OutboxMessageStatus.cs
  • microservices/src/training-service/Infrastructure/TrainingDbContext.cs
  • microservices/src/training-service/Infrastructure/Persistence.cs

See Also​

Keywords​

  • LMS database
  • Training persistence
  • Source-backed model

Revision Information​

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