Skip to main content

LMS Messaging and Outbox

Summary

Training stages integration contracts directly through TrainingOutbox helpers; there are no domain events or domain-to-integration mapping handlers.

Eight invoked contract types cover assignment/start/completion, assessment pass/fail, certificate issue, and session schedule/reschedule. The expiring-certificate contract exists but has no confirmed Training producer invocation. Shared bus/publisher/processor services are registered, and an outbox store exists, but no Training hosted relay or explicit processor invocation was found. ProcessedIntegrationEvent storage exists without an inbound consumer. Retry capability exists in the shared processor only when invoked. Delivery, exactly-once, dead-letter, replay, and consumer completion are not guaranteed.

Requires confirmation

Fine-grained authorization, production ownership, operational governance, and future architectural boundaries require confirmation where not implemented.

Source References

  • microservices/src/training-service/Infrastructure/TrainingDbContext.cs
  • microservices/src/training-service/Infrastructure/Persistence.cs
  • microservices/src/contracts/Events/TrainingLifecycleEvents.cs
  • microservices/src/training-service/Program.cs
  • microservices/src/shared-kernel/Extensions/MessagingExtensions.cs
  • microservices/src/shared-kernel/Messaging/OutboxProcessor.cs

See Also

Keywords

  • LMS technical architecture
  • Source-backed implementation

Revision Information

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