Skip to main content

LMS Persistence Ownership and Boundaries

Summary

Source-backed aggregate ownership and logical-versus-enforced relationship reference.

Audience

Engineering, QA, architecture, security, product, and data-governance reviewers.

Reference Content

Five relationships are enforced with required foreign keys and cascade deletion: Course-to-Module, Module-to-Lesson, Course-to-Material, LearningPath-to-ordered-link, and Assessment-to-Question. Other domain identifiers are logical references only in the model snapshot.

Course and Assessment own their configured child collections. LearningPath owns link rows, but a link's course reference has no confirmed database foreign key. Enrollment, completion, certificate, attempt, session, and trainer references are independently stored objects connected by identifiers rather than configured navigations.

No EF owned-type mapping exists. Value records use converters. There is no repository/unit-of-work wrapper beyond the scoped DbContext and no second persistence context or compatibility store.

Source References

  • microservices/src/training-service/Infrastructure/TrainingDbContext.cs
  • microservices/src/training-service/Infrastructure/Migrations/TrainingDbContextModelSnapshot.cs
  • microservices/src/training-service/Domain/TrainingEntities.cs

See Also

Keywords

  • LMS database
  • Training persistence
  • Source-backed model

Revision Information

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