flowchart LR
%% High-level dataflow for telemetry in serious games with governance controls
subgraph C["Client / Spiel"]
U["Lernende:r"]
CG["Consent-Gate
(Opt-in/Policy-Version)"]
EL["Event Logger
(Batching/Offline-Queue)"]
U --> CG --> EL
end
subgraph I["Ingestion"]
COL["Telemetry Collector
(Auth, Schema-Validation, Rate-Limits)"]
end
subgraph G["Governance & Identitätstrennung"]
PID["Pseudonymisierungs-/Mapping-Service
(getrennte Identitätsdomäne)"]
RB["RBAC/ABAC Policy Engine"]
AUD["Audit Logs
(Zugriffe/Exporte)"]
end
subgraph S["Persistenz"]
LRS["LRS / Event Store
(Rohdaten/Lernspur)"]
end
subgraph A["Analytics"]
ETL["ETL/ELT & Qualitätschecks
(Dedupe, Missing Data, Drift)"]
AGG["Aggregation
(KPIs, Zeitfenster, Kohorten)"]
ADB["Analytics DB
(materialisierte Sichten)"]
end
subgraph R["Reporting"]
DASH["Dashboard/Reports
(Filter, Drilldown, Exporte)"]
ST["Stakeholder
(z. B. Lehrkraft/Trainer:in)"]
end
%% Main flow
EL --> COL
COL --> PID
PID --> LRS
LRS --> ETL --> AGG --> ADB --> DASH --> ST
%% Governance controls
RB -. "Zugriffskontrolle" .-> LRS
RB -. "Zugriffskontrolle" .-> ADB
RB -. "Zugriffskontrolle" .-> DASH
DASH --> AUD
LRS --> AUD
ADB --> AUD
%% Data separation hint
COL -. "Trennung: technisch vs. didaktisch" .- PID