/* voltgrid */ → architecture

VoltGrid Architecture

The system behind the platform: charging stations report via OCPP/MQTT to an IoT gateway, the realtime hub pushes live status into the apps, sessions flow asynchronously through queues into billing. Hover the nodes to see the data flows.

~/voltgrid · system architecture// hover the nodes
Fahrer-Appmap · laden · abrechnungBetreiber-Dashboardmulti-tenant · kpisAPI-ClusterREST · auth · rate-limitssessions · tarife · roamingRealtime-Hubwebsockets · status-pushPostgreSQLstammdaten · sessionsTimescaleDBtelemetrie · kW-kurvenQueueredis · eventsBilling-Workersessions → rechnungenIoT-GatewayOCPP · MQTT · ingestLadesäulen ×2.418hardware · telemetriePSPpayments · extern
synchronous (request/response) asynchronous (queue/events) real-time external / hardware

Two separate paths keep the system calm: the synchronous path (app → API → PostgreSQL) answers requests immediately, the asynchronous path (queue → billing worker) processes session completions and invoices without blocking the API. Telemetry flows separately into TimescaleDB, 2,418 stations send kW curves that never weigh down the session database. Payment data stays with the external PSP.

~/voltgrid · one charging session, end to end
POST /sessionsapp → api · 201Säule startetapi → gateway → OCPPLive-TelemetriekW-kurve → app · pushSession-Endeevent → queue → workerRechnungpsp · pdf

A session's journey through the system: the app starts it via REST, the gateway wakes the station over OCPP, the kW curve streams back into the app via WebSocket, and after unplugging, billing runs asynchronously. This exact flow powers the POST /api/v1/sessions in the sandbox API.