Skip to main content
Version: Latest

Flows Domain Model

The Flows platform is organized around several interconnected domains that model the physical and logical aspects of meter data management in microgrids.

Domain Structure

Core Domains

1. Meter Domain

Central to the platform, managing meter configurations, real-time state, and prepayment functionality.

Key Entities:

  • meter_registry - Master meter configuration
  • meter_shadows - Real-time meter state mirror
  • meter_registers - Register-to-meter relationships
  • meter_prepay_balance - Balance tracking over time

2. Data Collection Domain

Handles the continuous flow of consumption data and meter telemetry.

Key Entities:

  • register_import/export - Energy flow measurements
  • register_interval_hh - Half-hourly consumption data
  • meter_voltage - Voltage monitoring
  • meter_csq - Signal quality tracking

3. Infrastructure Domain

Models the physical and logical topology of the electrical network.

Key Entities:

  • circuits - Electrical circuit definitions
  • service_head_registry - Connection points
  • properties - Physical locations
  • sites_new - Site groupings
  • escos - Energy service companies

4. Tariffs Domain

Manages pricing structures and meter tariff updates.

Key Entities:

  • meter_shadows_tariffs - Current and future tariffs
  • Tariff update workflows
  • Prepayment token management

Entity Relationships

Primary Keys and Foreign Keys

The domain model uses UUIDs as primary keys for most entities, providing:

  • Globally unique identifiers
  • Decoupled ID generation
  • Better distribution for indexing

Time-Series Data

Many entities use TimescaleDB hypertables for efficient time-series storage:

  • register_interval_hh - Partitioned by timestamp
  • meter_voltage - Continuous monitoring data
  • meter_prepay_balance - Balance history

Aggregation Views

The platform provides pre-computed views for common aggregations:

  • circuit_interval_daily - Daily circuit consumption
  • circuit_interval_monthly - Monthly aggregates
  • meters_offline_recently - Health monitoring

Data Flow

  1. Meter Communication → Mediator servers poll meters
  2. Data Collection → Readings stored in register tables
  3. Synchronization → meter_shadows updated with latest state
  4. Aggregation → Views compute circuit and property totals
  5. API Access → PostgREST exposes data to applications

Design Principles

Event Sourcing

Many operations are logged as events:

  • meter_event_log - All meter events
  • Balance changes tracked over time
  • Tariff updates maintain history

Digital Twin Pattern

meter_shadows acts as a digital twin of physical meters:

  • Mirrors real-time meter state
  • Enables offline analysis
  • Supports passive monitoring mode

Separation of Concerns

  • Physical topology (circuits, service heads) separated from logical grouping (properties, sites)
  • Configuration (meter_registry) separated from state (meter_shadows)
  • Raw data (register readings) separated from aggregations (interval views)

Next Steps

Explore each domain in detail: