- 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>
167 lines
3.8 KiB
Markdown
167 lines
3.8 KiB
Markdown
---
|
||
title: EVOLV Platform Architecture
|
||
created: 2026-03-01
|
||
updated: 2026-04-07
|
||
status: evolving
|
||
tags: [architecture, platform, edge-first]
|
||
---
|
||
|
||
> **⚠️ 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.**
|
||
|
||
|
||
# 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
|