Files
3yearplan/outputs/diagrams/redpanda-eventhub.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

48 lines
1.5 KiB
Plaintext

flowchart LR
subgraph Sites["Site ScadaBridge Clusters"]
SB1["ScadaBridge<br/>Warsaw West"]
SB2["ScadaBridge<br/>Shannon"]
SB3["ScadaBridge<br/>Ponce"]
SBN["ScadaBridge<br/>... other sites"]
end
subgraph SAF["Store & Forward<br/>(per site, per call)"]
Q1["Local Queue"]
Q2["Local Queue"]
Q3["Local Queue"]
QN["Local Queue"]
end
subgraph Redpanda["Redpanda Central Cluster (South Bend)"]
direction TB
subgraph Topics["Topics: {domain}.{entity}.{event-type}"]
T1["equipment.tag.value-changed<br/>⏱ analytics 30d"]
T2["equipment.state.transitioned<br/>⏱ analytics 30d"]
T3["mes.workorder.started<br/>⏱ analytics 30d"]
T4["scada.alarm.raised<br/>⏱ operational 7d"]
T5["quality.inspection.completed<br/>⏱ compliance 90d"]
end
SR["Schema Registry<br/>Protobuf + BACKWARD_TRANSITIVE"]
AUTH["SASL/OAUTHBEARER<br/>+ prefix ACLs"]
end
subgraph Consumers["Enterprise Consumers"]
SNB["SnowBridge<br/>→ Snowflake"]
KPI["KPI Processors"]
CAM["Camstar<br/>Integration"]
REPLAY["Historical Replay<br/>(simulation-lite)"]
end
SB1 --> Q1 --> T1
SB2 --> Q2 --> T2
SB3 --> Q3 --> T3
SBN --> QN --> T4
SR -.->|"validates"| Topics
AUTH -.->|"enforces"| Topics
T1 --> SNB
T2 --> SNB
T2 --> KPI
T3 --> CAM
T1 --> REPLAY
T5 --> SNB