Google Sign-In Required

Use your company Google account to access the BetterFleet private content.

Back to private home

BetterFleet Support Private
Skip to content
BetterFleet Dev Wiki
Cross-Cutting Domains
Initializing search
    bf-dev
    • Home
    • Process
    • Products
    • Reference
    • Decisions
    • Work
    • Operations
    bf-dev
    • Home
      • Process Handbook
      • BetterFleet Workflow Map
      • Product Development System
      • Product Engineering Workflow
        • Process Workflows
        • Work Intake and Weekly Planning
        • Product Engineering Workflow in Linear
        • Product Engineering Delivery
        • Agent Guidance
        • Workflow
        • Skills
        • Skill Sources
        • Process Guides
        • GitLab Feature Flags
        • In-App Docs Authoring
        • Release Notes
        • Process Templates
        • Release Plan: <title>
      • Process Publishing
      • Product overview
        • General Reference
          • Core Domain Training
          • System Topology
          • Two-Axis Ontology Model
          • Ontology Primer
          • Worked Example
          • Evidence, Ownership, and Lineage
          • Energy Management
          • Standards and Protocol Map
          • Charging, Roaming, and Commercial Model
          • Charge Planning and Operations
          • Cross-Cutting Domains
            • Cross-Cutting Flow
            • Incidents & Notifications
            • Reporting & Insights
            • Resilience & Security
            • Accessibility & Usability
            • Coverage Check
          • Domain Coverage Matrix
        • BetterFleet Product Ontology
        • Core Operations Data Ontology
        • BetterFleet R&D Plan
        • Index
        • Architecture
        • Manage Product Capabilities
        • Manage Data and State
        • Manage Service Interaction Flows
        • Manage Reference
        • Manage Internal Application Diagrams
          • Manage Authorization And Permissions
          • bf-manage-core Auth and Authorization Model
          • Manage Authorization and Permissions
          • bf-manage-web Auth and Permission Model
          • Manage Service Catalog
          • bf-depot-sim
          • bf-digital-twin (Manage Role)
          • bf-fleet-health
          • bf-manage-connect
          • bf-manage-core
          • bf-manage-incidents
          • bf-manage-roaming
          • bf-manage-sitepwrmon
          • bf-manage-web
          • bf-schedule-creator (Manage Role)
          • bf-support-microsite
          • bf-telematics
        • Index
        • Architecture
        • Plan Reference
        • Plan Internal Application Diagrams
        • Plan Migration and Flags
        • Plan Simulation Request Lifecycle
          • Plan Service Catalog
          • bf-bnl-schedule-analysis-compute
          • bf-bnl-settings
          • bf-bnl-ui
          • bf-digital-twin (Plan Role)
          • bf-route-modelling
          • bf-schedule-creator (Plan Role)
      • Where to Ask Product Questions
      • Reference
        • Platform Reference
        • Platform Architecture
        • Script Runtime Model
        • Compose Profiles and Modes
        • Repository Map
        • Monolithic Git Transition FAQ
        • Monolithic Git Sizing
        • CI and Release Integration
        • Shared Reference
        • Shared Infrastructure Architecture
        • Secrets and Env Strategy
        • Vendors and Local Dependencies
        • System Reference
        • Cloud Data Dependencies
        • Ports and URLs
        • Service Matrix
          • API Docs
          • OCPI API Docs
          • OCPP API Docs
          • OSCP API Docs
          • VDV API Docs
          • Yard State API Docs
        • System Design
        • System Design: BBA Microgrid Controller Generic Packet Translation
        • System Design: Depot Simulation
        • System Design: IoT Sensor Packet
        • System Design: Microgrid Energy Orchestration
          • System Design: OCPP Profile 3 And ISO 15118 PKI
          • Architecture: BetterFleet OCPP Profile 3 and ISO 15118 PKI
          • Specification: BetterFleet OCPP Profile 3 and ISO 15118 Certificate Lifecycle Management
          • System Design: On-Prem Control
          • Challenge
          • Specification: BetterFleet On-Prem Continuity Control
          • System Design: OSCP
          • OSCP Protocol Documentation
          • Depot Sim Testing Requirements
          • System Design: OSCP Flexibility Provider Domain
      • Decisions
        • Architecture Decision Records
        • 0001 - Record architecture decisions
        • 0002 - Cognito for Authentication and Authorisation
        • 0003 - AWS Amplify for Authentication
        • 0004 - DynamoDB for default database
        • 0005 - Data Persistence
        • 0006 - Trunk-Based Development
        • 0007 - Generalised principle for automation
        • 0008 - Naming Repositories, Services, and URLs
        • 0009 - Use Timezone Aware DateTimes and UTC
        • 0010 - Use semantic release
        • 0011 - Centralized feature flag repository
        • 0012 - Use Named Exports in Storybook
        • 0013 - RESTful TITLE GraphQL
        • 0014 - Service Granularity
        • 0015 - Async/co-routine exception handling pattern
        • 0016 - Logging & log levels
        • 0017 - Instantiated Models
        • 0018 - Repository Pattern for Database Access
        • 0019 - Use of Design Tokens in TypeScript React Application
        • 0020 - API backwards compatibility and versioning
        • 0021 - Alembic Migration strategy
        • 0022 - Consistent react-hook-form usage
        • 0023 - Domain Event-Driven Architecture
        • 0024 - Domain Event Bus Tech Stack
        • 0025 - No enum types in DB table columns
        • 0026 - In-Memory Ormar Stores for Repository testing
        • 0027 - Storing Tab State in Query and Local Storage
        • 0028 - Adopt OpenTelemetry Semantic Conventions for Structured Logging
        • 0029 - Adopt RFC 9457 for HTTP Error Responses
        • 0030 - Use GitLab registry and Terraform state for ECS services
        • 0031 - Adopt DDD, Hexagonal Architecture, and CQRS for Python Domain Services
      • Work
        • Active Work
          • Work: Bba Microgrid Controller
          • Implementation Specification: BBA Microgrid Controller
          • BBA Microgrid Controller Deliverables (Stories)
          • Work: BFDev Monolithic Git
          • Challenge
          • Specification: BFDev Monolithic Git v2
          • BFDev Monolithic Git v2 Stories
          • Work: Complex Circuit Load Balancing
          • Implementation Specification: Complex Circuit Load Balancing
          • Complex Circuit Load Balancing Deliverables (Stories)
            • COR-10 and COR-11 Consolidation Review
          • Work: Dispatch Reliability and Reconciliation
          • Challenge
          • Specification: Dispatch Reliability and Reconciliation
          • Dispatch Reliability and Reconciliation (Unit User Stories)
            • Dispatch populated vehicle cards grey surface snapshot
            • Dispatch Visual Review
          • Work: Enable Scheduled Managed Charger Access
          • Challenge: Enable Scheduled Managed Charger Access
          • Specification Exploration Dossier: Enable Scheduled Managed Charger Access
          • Specification Review: Enable Scheduled Managed Charger Access
          • Specification: Enable Scheduled Managed Charger Access
          • Work: Guided Cut-Off and Release Orchestration
          • Specification: Guided Cut-Off and Release Orchestration
          • Guided Cut-Off and Release Orchestration (Unit User Stories)
          • Work: Production Deployment Validation
          • Challenge
          • Work: Scheduled Report Parity
          • Specification: Scheduled Report Parity
          • Work: Telematics
          • Telematics EventBridge Path
          • Telematics Ingress Architecture
          • Specification: Telematics Migration into bf-manage-core with 5-Minute Freshness and Health Visibility
          • Telematics Core Migration MVP (Implementation-Time BDD)
          • Work: Vector Derms
          • Implementation Specification: Vector DERMS
          • Vector DERMS Deliverables (Stories)
          • Work: Visiting Vehicle Charging Visibility
          • Specification: Visiting Vehicle Charging Visibility
          • Visiting Vehicle Charging Visibility (Unit User Stories)
          • Work: Workspace Owned Stripe Roaming
          • Specification: Workspace-Owned Stripe Credentials for Roaming Payments
        • Backlog Work
          • Work: Microgrid
          • Microgrid Backlog Stories
          • Work: Mobile Ops Companion
          • Challenge
          • Specification: Mobile Operations Companion v1
          • Mobile Operations Companion Deliverables (Stories)
          • Work: Oscp
          • OSCP Backlog Stories
        • Archived Work
          • Work: Code Canonical Orchestration
          • Challenge
          • Specification: Product Engineering Workflow
          • Product Engineering Workflow Deliverables (Unit User Stories)
          • Work: Release Notes Automation
          • Release Plan: Release Notes Automation
          • Release Notes Automation Backlog Stories
      • Operations
      • Onboarding Runbook
        • Operations Runbooks
        • Production Hotfix Release
        • Staging Hotfix Release
        • Manage Staging Release Validation
        • Terraform Plan Dry Runs
        • Operations Tooling
        • Code Indexing
        • Operations Evidence
        • Database Restoration Test Report
      • Daily Operations Runbook
      • Testing Guide
      • Troubleshooting
    • Cross-Cutting Flow
    • Incidents & Notifications
    • Reporting & Insights
    • Resilience & Security
    • Accessibility & Usability
    • Coverage Check
    1. Home
    2. Products
    3. General
    4. Core Domain Training
    general reference

    Cross-Cutting Domains¶

    Some domains do not start with one asset or one protocol. They cut across charging, vehicles, energy, work, commercial state, and users. These domains are still decision owners, so they need clear coordinates.

    This module covers:

    • Incidents & Notifications
    • Reporting & Insights
    • Resilience & Security
    • Accessibility & Usability

    Cross-Cutting Flow¶

    flowchart TB
      subgraph Evidence["Evidence sources"]
        Charger["charger status and meter evidence"]
        Vehicle["vehicle activity"]
        Work["work and schedule state"]
        Energy["energy system state"]
        Commercial["commercial and payment state"]
        User["user actions and support context"]
      end
    
      subgraph CrossCutting["Cross-cutting domain decisions"]
        Detect["Detection<br/>is something abnormal?"]
        Alert["Alerting<br/>who needs to know?"]
        Resolve["Resolution<br/>what should happen next?"]
        Report["Reporting<br/>what happened and why?"]
        Trust["Trust and safety<br/>who or what may act?"]
        Usability["Usability and support<br/>can the user understand and recover?"]
      end
    
      subgraph Outputs["Product outputs"]
        OpsView["operational dashboard"]
        IncidentTimeline["incident timeline"]
        ControlGuard["safe fallback or blocked action"]
        ReportRow["report row or export"]
        HelpPath["help article or support case"]
        Audit["audit trail"]
      end
    
      Charger --> Detect
      Vehicle --> Detect
      Work --> Detect
      Energy --> Detect
      Commercial --> Detect
      User --> Trust
      User --> Usability
      Detect --> Alert
      Detect --> Resolve
      Detect --> Report
      Trust --> ControlGuard
      Trust --> Audit
      Usability --> HelpPath
      Alert --> OpsView
      Resolve --> IncidentTimeline
      Report --> ReportRow
      Report --> OpsView

    Incidents & Notifications¶

    Incident work owns abnormal-state detection, impact explanation, notification, and resolution workflow.

    Sub-domain Owns Typical inputs Typical outputs
    Alerting Who should know and by what channel. severity, user role, depot, asset, customer rules notification, alert badge, escalation
    Detection Whether observed state is abnormal. OCPP status, telemetry freshness, site power, schedule/readiness state failure signal, grouped incident, confidence
    Incident & Resolution Management What happened, what changed, and how it was worked. event timeline, notes, assignment, state changes incident timeline, resolution state, support evidence
    stateDiagram-v2
      [*] --> Observed
      Observed --> Detected: abnormal condition
      Detected --> Notified: alert policy matched
      Notified --> Investigating: owner accepts / system assigns
      Investigating --> Mitigated: workaround or control action
      Investigating --> Resolved: fault cleared
      Mitigated --> Resolved: durable fix
      Resolved --> Closed: evidence reviewed
      Detected --> Closed: false positive

    Common domain question: is this a charger fault, vehicle readiness issue, energy constraint, schedule issue, platform health issue, or commercial access issue? The answer decides which domain owns the fix.

    Reporting & Insights¶

    Reporting owns derived history, analysis, proof, and accountability. It should read projections and preserve lineage back to the evidence.

    Sub-domain Owns Typical inputs Typical outputs
    Fleet & Charging Analytics Performance and utilisation over time. sessions, vehicles, schedules, meters, telematics utilisation, readiness, charge behaviour
    Operational Dashboards Current or near-current operational visibility. live projections, incidents, charger state, vehicle activity depot overview, all-depot view, status cards
    Cost, Carbon & Compliance Proof of cost, emissions, settlement, and regulated evidence. tariffs, CDRs, signed meter values, carbon factors, invoices cost report, carbon report, compliance export
    flowchart LR
      Evidence["Raw evidence<br/>session, meter, schedule, telemetry, tariff"]
      Projection["Projection<br/>charging, vehicle activity, energy system, commercial record"]
      Metric["Metric<br/>readiness, uptime, cost, carbon, utilisation"]
      View["View<br/>dashboard, report, export"]
      Decision["Decision<br/>operate, bill, prove, improve"]
    
      Evidence --> Projection
      Projection --> Metric
      Metric --> View
      View --> Decision
      Projection -. lineage .-> View

    Reporting should avoid re-deciding domain truth. For example, a report should read the readiness projection rather than recomputing readiness from raw session records in a separate way.

    Resilience & Security¶

    Resilience & Security owns trust, permissions, safe control, audit, fallback, and recoverability.

    Sub-domain Owns Typical inputs Typical outputs
    Platform Reliability & Safety Safe behaviour when control, telemetry, or integrations degrade. heartbeat, stale data, command failure, envelope expiry fallback limit, blocked action, degraded-state banner
    Security & Access Control Who or what may act and how trust is proven. role, token, API key, certificate, audit log allowed action, denied action, certificate status
    flowchart TB
      Actor["Actor<br/>user, system, charger, partner"]
      Identity["Identity and trust<br/>role, token, cert, contract"]
      Request["Requested action<br/>start, stop, profile, access, export"]
      Policy["Policy check<br/>permission, safety, freshness, scope"]
      Allowed["Allowed action<br/>with audit"]
      Denied["Denied or limited action<br/>reason and fallback"]
      Evidence["Audit evidence<br/>who, what, why, when"]
    
      Actor --> Identity
      Identity --> Request
      Request --> Policy
      Policy --> Allowed
      Policy --> Denied
      Allowed --> Evidence
      Denied --> Evidence

    This domain should be reviewed whenever a feature can command power, grant access, expose commercial records, or change safety-critical fallback behaviour.

    Accessibility & Usability¶

    Accessibility & Usability owns the human path through complex domain state. It includes onboarding, support, UI clarity, and recovery.

    Sub-domain Owns Typical inputs Typical outputs
    User Experience How the user understands and acts on domain state. role, task, status, permissions, context screen flow, labels, controls, empty states
    Onboarding & Support How users learn, configure, and recover. setup state, help docs, support evidence, common failures onboarding task, help page, support case
    flowchart LR
      DomainState["Domain state<br/>vehicle, charger, energy, incident, report"]
      Role["User role<br/>operator, energy manager, support, finance"]
      Task["Task<br/>decide, configure, recover, prove"]
      Surface["Surface<br/>screen, help doc, notification, report"]
      Outcome["Outcome<br/>user acts correctly with confidence"]
    
      DomainState --> Task
      Role --> Task
      Task --> Surface
      Surface --> Outcome

    When user-visible behaviour changes, update the in-app help docs. When behind-the-scenes behaviour changes what users should expect or do, update help docs as well.

    Coverage Check¶

    Use this check before a spec or story is marked ready:

    • Does the feature have one primary problem-domain coordinate?
    • Which cross-cutting domains read or react to it?
    • What incident or degraded state could happen?
    • What report or audit trail needs the outcome?
    • What trust, permission, or fallback rule applies?
    • What user-facing explanation or help path changes?
    Made with Material for MkDocs
    BFDev Docs Assistant
    New conversation?
    Ask one focused question at a time, this helps the assistant provide accurate answers about what's been implemented in BetterFleet.