LMS Course Aggregate Boundary
Summary
Course is the operational root for creation, publish/archive, modules, lessons, and materials, but no aggregate-root marker or behavior methods exist. EF config cascades Course to modules/materials and Module to lessons.
Identity and tenant fields come from TenantEntity. Code/title value records validate and normalize; duration clamps. Tenant+code uniqueness is database-enforced. Category is free text. Publish/archive set state directly with no strict transition invariant. Materials are stored through Document Service, then referenced locally. No course repository, domain event, concurrency token, trainer ownership, prerequisite, or capacity invariant is confirmed.
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.csmicroservices/src/training-service/Application/DocumentServiceClient.cs
Related Articles
See Also
Keywords
- LMS technical architecture
- Source-backed implementation
Revision Information
- Status: Draft
- Last reviewed: 2026-07-17
- Review cycle: Quarterly