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