Architecture
PLC / sensorsEdge gatewayMQTT brokerKafkaTimescaleDBGrafana
The problem
Each site ran a hand-configured collection stack. The aim was one reproducible pipeline that could be deployed per site and upgraded safely.
Approach
- Packaged every component as a container with versioned configuration.
- Used MQTT at the edge and Kafka as the durable backbone between ingestion and storage.
- Stored telemetry in TimescaleDB with retention and compression policies; visualised in Grafana.
- Deployed on Docker and Kubernetes with the same manifests across environments.
Outcome
- New sites are deployed from the same definitions instead of being configured by hand.