Skip to main content

LMS Ordering and Correlation

Summary

Contracts carry identity and time fields, but Training does not populate correlation chains and no delivery ordering guarantee is proven.

Audience

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

Reference Content

The shared contract supports event identity, occurrence time, correlation, causation, tenant, user, source, and schema version. Invoked Training contracts receive new identities, current occurrence times, and tenant context. Producer correlation, causation, and user context are left unset. Notification uses the event identity as its effective correlation fallback when correlation is absent.

The Training outbox store selects eligible records by occurrence time and the shared processor iterates the selected batch sequentially if called. This is local processing evidence only. No sequence field, aggregate version, broker partition evidence, or consumer reorder logic was found.

Unsupported guarantees include per-aggregate, per-employee, per-tenant, global, and broker delivery order. Correlation ownership and propagation Require confirmation.

Source References

  • microservices/src/contracts/Events/IntegrationEvent.cs
  • microservices/src/training-service/Infrastructure/TrainingDbContext.cs
  • microservices/src/training-service/Infrastructure/Persistence.cs
  • microservices/src/shared-kernel/Messaging/OutboxProcessor.cs
  • microservices/src/notification-service/Messaging/NotificationEventConsumer.cs

See Also

Keywords

  • Event ordering
  • Correlation context
  • Sequence guarantees

Revision Information

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