Background
Part of #363
Phase 1 (Audit) and Phase 2 (Enhancement) of the DI container consolidation effort.
Phase 1: Audit and Compatibility Analysis
Findings
| System |
DI Implementation |
Status |
Migration Effort |
| common_system |
service_container |
Reference implementation |
N/A |
| monitoring_system |
service_registration.h adapter |
Already delegating to service_container |
Minimal (cleanup only) |
| logger_system |
lightweight_di_container + service_registration.h |
Dual: internal string-based DI + service_container bridge |
Medium |
| database_system |
database_coordinator + service_registration.h |
Lifecycle-driven coordinator + service_container bridge |
High |
Feature Comparison
| Feature |
service_container |
lightweight_di |
database_coordinator |
| Type-safe registration |
C++20 concepts |
Generic template |
N/A (hardcoded) |
| Lifetimes |
singleton/transient/scoped |
factory/singleton |
lifecycle-managed |
| Circular dependency detection |
Thread-local stack |
None |
N/A (fixed DAG) |
| Thread safety |
shared_mutex + DCL |
std::mutex |
Per-adapter mutexes |
| Container freezing |
Yes |
No |
No |
| Audit logging |
RegistryAuditLog |
No |
No |
| Scoped containers |
Yes |
No |
No |
| Global singleton |
Yes |
No |
No |
Key Finding
service_container is already the most feature-complete implementation. No critical feature gaps identified. Each downstream system already has a service_registration.h adapter that bridges to service_container.
Phase 2: Enhance service_container
Enhancement: Module Registrar Support
Add a standardized ModuleRegistrar concept and dynamic module registration to unified_bootstrapper, replacing compile-time #ifdef guards with runtime module registration.
Changes:
- Add
ModuleRegistrar concept to concepts/service.h
- Add
register_module() and registered_modules() to unified_bootstrapper
- Add unit tests for module registration
- Update
register_optional_services() to support dynamic module registration
Acceptance Criteria
Background
Part of #363
Phase 1 (Audit) and Phase 2 (Enhancement) of the DI container consolidation effort.
Phase 1: Audit and Compatibility Analysis
Findings
service_containerservice_registration.hadapterservice_containerlightweight_di_container+service_registration.hdatabase_coordinator+service_registration.hFeature Comparison
Key Finding
service_containeris already the most feature-complete implementation. No critical feature gaps identified. Each downstream system already has aservice_registration.hadapter that bridges toservice_container.Phase 2: Enhance service_container
Enhancement: Module Registrar Support
Add a standardized
ModuleRegistrarconcept and dynamic module registration tounified_bootstrapper, replacing compile-time#ifdefguards with runtime module registration.Changes:
ModuleRegistrarconcept toconcepts/service.hregister_module()andregistered_modules()tounified_bootstrapperregister_optional_services()to support dynamic module registrationAcceptance Criteria
ModuleRegistrarconcept added with compile-time validationunified_bootstrappersupports dynamic module registration