Skip to main content

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.cs
  • microservices/src/training-service/Api/TrainingEndpoints.cs
  • microservices/src/training-service/Infrastructure/TrainingDbContext.cs

See Also

Keywords

  • LMS technical architecture
  • Source-backed implementation

Revision Information

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