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
| Transition | Contract | Preconditions and duplicate behavior | Notification recognition |
|---|---|---|---|
| Assign | TrainingAssignedEvent | The endpoint does not pre-check an existing assignment; the tenant/employee/course uniqueness constraint rejects a duplicate at persistence. | Confirmed |
| Start | TrainingStartedEvent | Requires an eligible non-terminal enrollment; a repeated start does not create another transition event. | Confirmed |
| Complete | TrainingCompletedEvent | Requires the implemented completion conditions; terminal-state checks prevent a repeated completion transition. | Confirmed |
| Cancel | None | No cancellation endpoint or contract was verified. | Not implemented |
| Expire | None | No 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.csmicroservices/src/training-service/Infrastructure/TrainingDbContext.csmicroservices/src/contracts/Events/TrainingLifecycleEvents.cs
Related Articles
See Also
Keywords
- Enrollment lifecycle
- Training contracts
- Duplicate handling
Revision Information
- Status: Draft
- Last reviewed: 2026-07-17
- Review cycle: Quarterly