2026-04-07 17:08:35 +02:00
|
|
|
|
---
|
|
|
|
|
|
title: EVOLV Platform Architecture
|
|
|
|
|
|
created: 2026-03-01
|
|
|
|
|
|
updated: 2026-04-07
|
|
|
|
|
|
status: evolving
|
|
|
|
|
|
tags: [architecture, platform, edge-first]
|
|
|
|
|
|
---
|
|
|
|
|
|
|
wiki: audit + archive stale pages; refresh Home for 2026-05-11 wave
- Archived 20 pre-refactor pages to wiki/Archive/ with standard banners:
- All 6 architecture/ pages (old _loadConfig/_setupSpecificClass internals,
pre-refactor S88 hierarchy, deployment blueprint)
- All 3 sessions/ logs (Apr-07 + Apr-13 session summaries)
- findings/open-issues-2026-03.md (issues 1-5 all resolved by refactor)
- concepts/generalfunctions-api.md (missing BaseDomain/BaseNodeAdapter)
- concepts/sources-readme.md (empty PDF placeholder, never populated)
- manuals/nodes/rotatingMachine.md + measurement.md (superseded by per-repo wikis)
- Top-level SCHEMA.md, index.md, log.md, metrics.md, overview.md,
knowledge-graph.yaml (all Apr-07 snapshot, pre-refactor)
- Kept wiki/concepts/ domain pages (ASM, PID, pump-affinity, settling, etc.)
- Kept wiki/findings/ proven results (BEP, NCog, curve-non-convexity, stability)
- Kept wiki/manuals/node-red/* (FlowFuse + Node-RED runtime docs, still current)
- Kept wiki/tools/* (utility scripts)
- Updated wiki/Archive.md index with 20 rows
- Fixed wiki/Home.md: Tier 6 was wrongly marked done; corrected to pending;
Tier 9 updated to reflect 2026-05-11 in-progress wave
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-11 21:07:48 +02:00
|
|
|
|
> **⚠️ ARCHIVED — pre-refactor (Tier 1–4, 2026-05)**
|
|
|
|
|
|
>
|
|
|
|
|
|
> This page describes the architecture before the platform refactor.
|
|
|
|
|
|
> The current page is the per-node wiki on **[gitea.wbd-rd.nl/RnD](https://gitea.wbd-rd.nl/RnD)** or **[Home](../Home)**.
|
|
|
|
|
|
>
|
|
|
|
|
|
> Kept for historical reference only. **Do not update.**
|
|
|
|
|
|
|
|
|
|
|
|
|
2026-03-23 11:23:24 +01:00
|
|
|
|
# EVOLV Platform Architecture
|
|
|
|
|
|
|
|
|
|
|
|
## At A Glance
|
|
|
|
|
|
|
|
|
|
|
|
EVOLV is not only a Node-RED package. It is a layered automation platform:
|
|
|
|
|
|
|
|
|
|
|
|
- edge for plant-side execution
|
|
|
|
|
|
- site for local aggregation and resilience
|
|
|
|
|
|
- central for coordination, analytics, APIs, and governance
|
|
|
|
|
|
|
|
|
|
|
|
```mermaid
|
|
|
|
|
|
flowchart LR
|
|
|
|
|
|
subgraph EDGE["Edge"]
|
|
|
|
|
|
PLC["PLC / IO"]
|
|
|
|
|
|
ENR["Node-RED"]
|
|
|
|
|
|
EDB["Local InfluxDB"]
|
|
|
|
|
|
EUI["Local Monitoring"]
|
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
subgraph SITE["Site"]
|
|
|
|
|
|
SNR["CoreSync / Site Node-RED"]
|
|
|
|
|
|
SDB["Site InfluxDB"]
|
|
|
|
|
|
SUI["Site Dashboards"]
|
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
subgraph CENTRAL["Central"]
|
|
|
|
|
|
API["API Gateway"]
|
|
|
|
|
|
CFG["Tagcodering"]
|
|
|
|
|
|
CDB["Central InfluxDB"]
|
|
|
|
|
|
CGR["Grafana"]
|
|
|
|
|
|
INTEL["Overview Intelligence"]
|
|
|
|
|
|
GIT["Gitea + CI/CD"]
|
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
PLC --> ENR
|
|
|
|
|
|
ENR --> EDB
|
|
|
|
|
|
ENR --> EUI
|
|
|
|
|
|
ENR <--> SNR
|
|
|
|
|
|
EDB <--> SDB
|
|
|
|
|
|
SNR --> SUI
|
|
|
|
|
|
SNR <--> API
|
|
|
|
|
|
API <--> CFG
|
|
|
|
|
|
API --> INTEL
|
|
|
|
|
|
SDB <--> CDB
|
|
|
|
|
|
CDB --> CGR
|
|
|
|
|
|
GIT --> ENR
|
|
|
|
|
|
GIT --> SNR
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
## Core Principles
|
|
|
|
|
|
|
|
|
|
|
|
### 1. Edge-first operation
|
|
|
|
|
|
|
|
|
|
|
|
The edge layer must remain useful and safe when central systems are down.
|
|
|
|
|
|
|
|
|
|
|
|
That means:
|
|
|
|
|
|
|
|
|
|
|
|
- local logic remains operational
|
|
|
|
|
|
- local telemetry remains queryable
|
|
|
|
|
|
- local dashboards can keep working
|
|
|
|
|
|
|
|
|
|
|
|
### 2. Multi-level telemetry
|
|
|
|
|
|
|
|
|
|
|
|
InfluxDB is expected on multiple levels:
|
|
|
|
|
|
|
|
|
|
|
|
- local for resilience and digital-twin use
|
|
|
|
|
|
- site for plant diagnostics
|
|
|
|
|
|
- central for fleet analytics and advisory logic
|
|
|
|
|
|
|
|
|
|
|
|
### 3. Smart storage
|
|
|
|
|
|
|
|
|
|
|
|
Telemetry should not be stored only with naive deadband rules.
|
|
|
|
|
|
|
|
|
|
|
|
The target model is signal-aware:
|
|
|
|
|
|
|
|
|
|
|
|
- preserve critical change points
|
|
|
|
|
|
- reduce low-information flat sections
|
|
|
|
|
|
- allow downstream reconstruction where justified
|
|
|
|
|
|
|
|
|
|
|
|
```mermaid
|
|
|
|
|
|
flowchart LR
|
|
|
|
|
|
SIG["Process Signal"] --> EVAL["Slope / Event Evaluation"]
|
|
|
|
|
|
EVAL --> KEEP["Keep critical points"]
|
|
|
|
|
|
EVAL --> REDUCE["Reduce reconstructable points"]
|
|
|
|
|
|
KEEP --> L0["Local InfluxDB"]
|
|
|
|
|
|
REDUCE --> L0
|
|
|
|
|
|
L0 --> L1["Site InfluxDB"]
|
|
|
|
|
|
L1 --> L2["Central InfluxDB"]
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
### 4. Central is the safe entry point
|
|
|
|
|
|
|
|
|
|
|
|
External systems should enter through central APIs, not by directly calling field-edge systems.
|
|
|
|
|
|
|
|
|
|
|
|
```mermaid
|
|
|
|
|
|
flowchart TD
|
|
|
|
|
|
EXT["External Request"] --> API["Central API Gateway"]
|
|
|
|
|
|
API --> AUTH["Auth / Policy"]
|
|
|
|
|
|
AUTH --> SITE["Site Layer"]
|
|
|
|
|
|
SITE --> EDGE["Edge Layer"]
|
|
|
|
|
|
EDGE --> PLC["Field Assets"]
|
|
|
|
|
|
|
|
|
|
|
|
EXT -. blocked .-> EDGE
|
|
|
|
|
|
EXT -. blocked .-> PLC
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
### 5. Configuration belongs in `tagcodering`
|
|
|
|
|
|
|
|
|
|
|
|
The intended configuration source of truth is the database-backed `tagcodering` model:
|
|
|
|
|
|
|
|
|
|
|
|
- machine metadata
|
|
|
|
|
|
- asset configuration
|
|
|
|
|
|
- runtime-consumable configuration
|
|
|
|
|
|
- future central/site configuration services
|
|
|
|
|
|
|
|
|
|
|
|
This already exists partially but still needs more work before it fully serves that role.
|
|
|
|
|
|
|
|
|
|
|
|
## Layer Roles
|
|
|
|
|
|
|
|
|
|
|
|
### Edge
|
|
|
|
|
|
|
|
|
|
|
|
- PLC connectivity
|
|
|
|
|
|
- local logic
|
|
|
|
|
|
- protocol translation
|
|
|
|
|
|
- local telemetry buffering
|
|
|
|
|
|
- local monitoring and digital-twin support
|
|
|
|
|
|
|
|
|
|
|
|
### Site
|
|
|
|
|
|
|
|
|
|
|
|
- aggregation of edge systems
|
|
|
|
|
|
- local dashboards and diagnostics
|
|
|
|
|
|
- mediation between OT and central
|
|
|
|
|
|
- protected handoff for central requests
|
|
|
|
|
|
|
|
|
|
|
|
### Central
|
|
|
|
|
|
|
|
|
|
|
|
- enterprise/API gateway
|
|
|
|
|
|
- fleet dashboards
|
|
|
|
|
|
- analytics and intelligence
|
|
|
|
|
|
- source control and CI/CD
|
|
|
|
|
|
- configuration governance through `tagcodering`
|
|
|
|
|
|
|
|
|
|
|
|
## Why This Matters
|
|
|
|
|
|
|
|
|
|
|
|
This architecture gives EVOLV:
|
|
|
|
|
|
|
|
|
|
|
|
- better resilience
|
|
|
|
|
|
- safer external integration
|
|
|
|
|
|
- better data quality for analytics
|
|
|
|
|
|
- a path from Node-RED package to platform
|