LMS Repositories and Unit of Work
Summary
No repository interface, aggregate repository, generic repository, application unit-of-work abstraction, or explicit transaction coordinator exists.
Endpoints inject TrainingDbContext and call DbSet/EF query APIs directly. SaveChanges is the local persistence boundary. Normal single-SaveChanges operations participate in the DbContext/provider transaction, including entity, audit/timeline, and staged outbox rows. Document HTTP work is outside that local transaction.
TrainingOutboxMessageStore is a messaging persistence adapter, not a domain repository. The design-time factory creates DbContext for tooling. Direct DbContext usage simplifies the current service but reduces application-layer isolation and unit test substitution.
Requires confirmation
Fine-grained authorization, production ownership, operational governance, and future architectural boundaries require confirmation where not implemented.
Source References
microservices/src/training-service/Api/TrainingEndpoints.csmicroservices/src/training-service/Infrastructure/TrainingDbContext.csmicroservices/src/training-service/Infrastructure/Persistence.csmicroservices/src/training-service/Program.cs
Related Articles
See Also
Keywords
- LMS technical architecture
- Source-backed implementation
Revision Information
- Status: Draft
- Last reviewed: 2026-07-17
- Review cycle: Quarterly