Files
3yearplan/outputs/diagrams/otopcua-dataflow.mmd
Joseph Doherty eb61d07ffd Add 5 component data-flow diagrams (Mermaid source + PNG)
- otopcua-dataflow: equipment → drivers (8, with stability tiers) → namespaces → ACL → consumers
- redpanda-eventhub: site ScadaBridge → store-and-forward → central cluster (topics + retention tiers + schema registry) → enterprise consumers
- snowbridge-dataflow: source adapters (Historian/Redpanda) → governed selection + approval workflow → Snowflake landing
- scadabridge-dataflow: OtOpcUa inputs → scripts/templates → multiple outputs (Redpanda, Web APIs, DB, email, equipment writes, Camstar)
- snowflake-dbt-dataflow: landing → staging → curated layer (dim_equipment, fact_state_transitions, mart_oee) → Power BI / AI/ML / ad-hoc
2026-04-17 14:24:45 -04:00

51 lines
1.4 KiB
Plaintext

flowchart LR
subgraph Equipment["Equipment (Layer 1)"]
PLC1["Modbus TCP/RTU<br/>devices"]
PLC2["Siemens S7<br/>PLCs"]
PLC3["OPC UA-native<br/>equipment"]
PLC4["AB CIP/Legacy<br/>PLCs"]
PLC5["Beckhoff TwinCAT<br/>controllers"]
CNC["FANUC CNC<br/>(FOCAS)"]
end
subgraph OtOpcUa["OtOpcUa Cluster — per site (Layer 2)"]
direction TB
subgraph Drivers["Core Drivers (8)"]
D1["Modbus<br/>Tier A"]
D2["S7<br/>Tier B"]
D3["OPC UA Client<br/>Tier A"]
D4["AB CIP + Legacy<br/>Tier B"]
D5["TwinCAT<br/>Tier B"]
D6["FOCAS<br/>Tier C ⚡"]
end
subgraph Namespaces["Two Namespaces"]
EN["Equipment NS<br/>(raw data)"]
SPN["System Platform NS<br/>(processed data)"]
end
ACL["ACL Enforcer<br/>6-level scope"]
end
subgraph Consumers["Downstream Consumers"]
SB["ScadaBridge<br/>(Tier 1 cutover)"]
IG["Ignition SCADA<br/>(Tier 2 cutover)"]
SP["System Platform IO<br/>(Tier 3 cutover)"]
end
PLC1 --> D1
PLC2 --> D2
PLC3 --> D3
PLC4 --> D4
PLC5 --> D5
CNC -.->|"out-of-process<br/>named pipe"| D6
D1 --> EN
D2 --> EN
D3 --> EN
D4 --> EN
D5 --> EN
D6 --> EN
EN --> ACL
SPN --> ACL
ACL --> SB
ACL --> IG
ACL --> SP