Skip to main content

LMS Enrollment Events

Summary

Assignment, start, and completion construct outbound integration contracts; cancellation and expiry event behavior is not implemented.

Audience

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

Reference Content

TransitionContractPreconditions and duplicate behaviorNotification recognition
AssignTrainingAssignedEventThe endpoint does not pre-check an existing assignment; the tenant/employee/course uniqueness constraint rejects a duplicate at persistence.Confirmed
StartTrainingStartedEventRequires an eligible non-terminal enrollment; a repeated start does not create another transition event.Confirmed
CompleteTrainingCompletedEventRequires the implemented completion conditions; terminal-state checks prevent a repeated completion transition.Confirmed
CancelNoneNo cancellation endpoint or contract was verified.Not implemented
ExpireNoneNo expiry transition or contract was verified.Not implemented

Each implemented operation mutates state, stages a newly identified contract in the outbox, records local evidence, and commits through one save boundary. The completion operation does not enforce an assessment prerequisite. Source does not enforce employee ownership at the event boundary; that policy requires confirmation. Assignment, start, and completion are expected lifecycle order, but no transport or per-enrollment ordering guarantee is implemented.

Source References

  • microservices/src/training-service/Api/TrainingEndpoints.cs
  • microservices/src/training-service/Infrastructure/TrainingDbContext.cs
  • microservices/src/contracts/Events/TrainingLifecycleEvents.cs

See Also

Keywords

  • Enrollment lifecycle
  • Training contracts
  • Duplicate handling

Revision Information

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