bf-digital-twin (Plan Role)¶
What this service is¶
bf-digital-twin is the target unified Plan backend for migration. It consolidates simulation, resource handling, modelling outputs, and selected ML-backed prediction endpoints.
Code anatomy¶
src/app.py: FastAPI application assembly and lifecycle.src/plan/adapters,src/plan/application,src/plan/domain,src/plan/models: DDD-style Plan core layers.src/service/*: operational service modules for depot, trip, vehicle, geography, weather, charge-point, hvac.src/output_service/*: prediction/output APIs (time_to_charge,range_remaining).src/ml_models/*: model loading/estimator support.src/old/*: legacy modules retained during migration period.
Architectural characteristics¶
- Hybrid architecture: newer DDD Plan core plus legacy-compatible service modules.
- Supports migration path from distributed legacy stack to single-service orchestration.
- Includes compatibility behavior to interoperate with legacy consumers during transition.
Documentation and tests in-repo¶
- Internal docs under
docs/architecture.mdand archived docs. - Broad test coverage across
plan/*,service/*,output_service/*, andml_models/*.
Internal request lifecycle¶
sequenceDiagram
participant UI
participant Api as fastapi app
participant AppLayer as plan application layer
participant Domain as plan domain layer
participant Services as service modules
participant Output as output service modules
participant S3 as aws s3
participant DDB as aws dynamodb
UI->>Api: simulation or resource request
Api->>AppLayer: invoke application use case
AppLayer->>Domain: execute domain logic
AppLayer->>Services: call service modules for data and modelling
Services-->>AppLayer: computed results
AppLayer->>Output: prepare output artifacts
Output->>S3: persist run artifacts and outputs
Output->>DDB: persist run metadata
Api-->>UI: response payload