Skip to content

refactor(di): Phase 5 — migrate database_system to service_container #369

Description

@kcenon

Background

Part of #363 — Phase 5

Refactor database_coordinator to use service_container for backend resolution.

Current State

database_system uses a lifecycle-driven database_coordinator pattern with adapter/backend layers.
Has service_registration.h for IDatabase but coordinator manages its own initialization order.

Scope

  • Refactor database_coordinator to register adapters via service_container
  • Leverage service_container's lazy singleton for dependency ordering
  • Update adapter initialization patterns
  • Verify all database_system tests pass

Key Challenges

  • Phase-aware initialization (Logger → Monitor → Thread) must be preserved
  • Multiple backends per adapter (runtime selection via enum factory)
  • Aggregated health checks across adapters

Affected Files

  • database/integrated/core/database_coordinator.h (refactor)
  • database/integrated/adapters/ (update registration)
  • include/kcenon/database/di/service_registration.h (extend)

Acceptance Criteria

  • Adapters registered through service_container
  • Initialization ordering preserved
  • All tests pass under ASAN and TSAN
  • Migration guide documented

Metadata

Metadata

Assignees

Labels

architectureArchitectural changes and designrefactoringCode refactoring and improvements

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions