LMS Enrollment Model Boundary
Summary
TrainingEnrollment is a standalone tenant entity referenced directly by endpoints; it is not an encapsulated aggregate class. It references course, optional path, employee identity fields, due date, lifecycle timestamps, and status.
Completion creates a separate TrainingCompletion row and event intent in the same save. Unique tenant/employee/course enforcement is database-backed. Canonical cancel/expire operations, percentage progress, eligibility lookup, employee ownership verification, assessment prerequisite, certificate creation, and optimistic concurrency are absent. Enrollment lifecycle events are integration contracts staged directly, not domain events.
Requires confirmation
Fine-grained authorization, production ownership, operational governance, and future architectural boundaries require confirmation where not implemented.
Source References
microservices/src/training-service/Domain/TrainingEntities.csmicroservices/src/training-service/Api/TrainingEndpoints.csmicroservices/src/training-service/Infrastructure/TrainingDbContext.cs
Related Articles
See Also
Keywords
- LMS technical architecture
- Source-backed implementation
Revision Information
- Status: Draft
- Last reviewed: 2026-07-17
- Review cycle: Quarterly