Platform

One platform,
six services.

A React client talks to a FastAPI gateway that routes to six independent services. Data flows up from the plant through connectors; control and optimisation decisions flow back down in a closed loop.

Client Interface React SPA · dashboards · trends · controller config API Gateway FastAPI · REST /api/v1 · request routing Auth · JWT CONNECTIVITYProcess Data Service MODELINGModel Service CONTROLControl Service OPTIMIZEOptimization + History OPC-UA Connector OPC-DA Connector REST API Connector Cloud Connector Linear Models Nonlinear Models First-Principles Data-Driven (ML) MPC Controller Adaptive PID Extremum Seeking Fuzzy Logic Steady-State Opt. Dynamic Opt. History Service Scheduler / Triggers DATA TIER Closed loop: Control → Connectors → Plant → Process Data InfluxDBTime-series · history & trends PostgreSQLConfig · users · model repo RedisCache · real-time state
Layered architecture — data flows up through the connectors; control and optimisation flow back down to the plant.
Core services

One clear responsibility each.

01

Authentication

Issues and validates JWTs; access control enforced at the API boundary.

02

Process Data

Acquires and normalises live and historical signals through the connectors.

03

Model

Builds, stores and serves linear, nonlinear, first-principles and data-driven models.

04

Control

Computes manipulated-variable moves — MPC, adaptive PID, extremum seeking, fuzzy.

05

Optimization

Finds the best operating point — steady-state and dynamic.

06

History

Persists and queries time-series; trends, backfill and audit trail.

Engineering

A modern, containerised stack.

The image validated in test is the image that runs in production.

FrontendReact · TypeScript
BackendFastAPI · Python
RelationalPostgreSQL
Time-seriesInfluxDB
Cache / stateRedis
OrchestrationDocker Compose
MigrationsAlembic
AuthJWT · hashing
Deployment

Validated, then trusted.

Each stage runs in a test environment identical to production and can be rolled back instantly. See the full method on the Approach page.

01

Connect

Read-only data beside the control system. No write access until you decide.

02

Shadow

Identify models; run controllers in advisory mode while operators stay in control.

03

Close & optimise

Enable bounded write-back, then turn on economic optimisation.

Let’s run a proof of value.

One well-instrumented unit, a read-only pilot, and a quantified benefit estimate — with a reusable playbook for what comes next.

Book a conversation