Skip to main content

LMS Events and Integration Contracts

Summary

Complete Draft documentation for the source-backed LMS event contracts, direct lifecycle producers, transactional outbox staging, Notification consumer recognition, reliability behavior, HTTP boundaries, and known limitations.

Audience

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

Overview

Training defines no domain-event abstraction or aggregate event collection. Endpoint lifecycle operations call infrastructure helpers that directly construct shared integration contracts, validate them, serialize them into outbox records, and save them with local business changes.

Nine outbound Training contracts are defined. Eight are invoked; the certificate-expiry contract is defined and recognized by Notification but has no Training producer invocation. Training registers messaging infrastructure and an outbox processor abstraction, but no hosted relay or processor trigger is registered. Broker delivery from Training is therefore not confirmed.

Notification is the only confirmed consumer service: it recognizes and subscribes to all nine contract names, maps them to notification intent, suppresses duplicate event identities, and applies delivery retry behavior. Gateway and Document integrations are HTTP-only boundaries.

Documentation map

Requires confirmation

Relay ownership, production publication triggering, retry ceilings, reconciliation, retention, contract governance, template ownership, and operational failure ownership require confirmation.

Source References

  • microservices/src/contracts/Events/TrainingLifecycleEvents.cs
  • microservices/src/training-service/Infrastructure/TrainingDbContext.cs
  • microservices/src/training-service/Infrastructure/Persistence.cs
  • microservices/src/notification-service/Messaging/NotificationEventConsumer.cs
  • microservices/src/notification-service/Application/EventNotificationResolver.cs

See Also

Keywords

  • LMS events
  • Training integration contracts
  • Transactional outbox

Revision Information

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