Data Plane — The Physical World Interface¶
Purpose¶
The Data Plane is the platform’s interface to the physical world. It handles device enrollment and lifecycle management, telemetry ingestion and analytics, OTA software distribution, and data availability for all upstream services. Every robot, PDA, sensor, or IoT device that participates in the platform is registered and monitored here.
Services¶
Service |
Responsibility |
Detail |
|---|---|---|
Device enrollment, alerts, and OTA status |
Enrolls IoT devices, surfaces ThingsBoard alerts, provides OTA update visibility |
|
Data processing, analytics, and dashboards |
Wraps StreamPipes for telemetry processing, custom dashboards, and visual widgets |
|
OTA artifact management and policy-driven rollouts |
Wraps hawkBit for artifact publishing, distribution sets, policy-driven rollout automation, proxied DDI, CI/CD access keys for artifact publishing |
Interaction Model¶
┌───────────────┐
CI/CD (Jenkins) ──AK/SK─────►│ OTAForge │──► hawkBit
(artifact publishing only) │ │
│ Artifact mgmt │ DDI proxy
Policy Service ──policies───►│ Policy engine │◄──────────── Devices
│ DDI proxy │ (Hara polls OTAForge,
└───────┬───────┘ not hawkBit directly)
│ OTA status
▼
Devices ──MQTT──► ThingsBoard ──► ┌──────────────┐
│ │ DeviceAdmin │ ◄── Identity Plane
│ alerts │ (enrollment, │ (DotID auth)
└─────────►│ alerts, OTA │
│ status) │
Provisioning ◄── delegates ──────│ │
Service └──────────────┘
│
Kafka │
(Cluster A) │ cross-cluster replication
▼
┌──────────────┐
Applications ───►│ ThingIO │ ◄── Equator (spatial overlay)
(WES, CJ) │ (processing, │
embed via │ APIs + SDK) │ Kafka (Cluster B)
React SDK └──────────────┘
DeviceAdmin is the unified device management interface — enrollment, alerts, and OTA status. Delegates provisioning to the Provisioning Service. Developers never interact with ThingsBoard or hawkBit directly.
ThingIO is the data processing and visualization layer — analytics pipelines and visual widgets built on StreamPipes. Applications register dashboards via APIs and embed them using the React SDK.
OTAForge is the OTA artifact layer — CI/CD access keys for artifact publishing, policy-driven rollout automation, and proxied DDI endpoint. Rollouts are auto-created by policy evaluation, not manually.
Kafka runs as two separate MSK clusters: Cluster A (ThingsBoard telemetry) and Cluster B (StreamPipes analytics).
All services authenticate via DotID. Resources are scoped to accounts.
Data Ownership¶
Data |
Owner |
Consumers |
|---|---|---|
Device registry (ID, type, firmware, lease) |
DeviceAdmin |
All planes |
Device alerts (battery, connectivity, threshold) |
DeviceAdmin |
Applications, Operators |
OTA update status (version, pending, history) |
OTAForge (via DeviceAdmin view) |
Applications, Operators |
Raw telemetry (position, battery, sensor readings) |
ThingsBoard (internal) |
ThingIO, DeviceAdmin alerts |
Processed analytics (patterns, anomalies, coverage) |
ThingIO |
Applications, Intelligence Plane |
Dashboards, widgets, pipelines |
ThingIO |
Applications |
Artifacts, distribution sets, rollouts |
OTAForge |
DeviceAdmin (status view), Devices |
IoT Technology Layer¶
The Data Plane services wrap three open-source IoT platforms. See the IoT Layer for technology details.
Service |
Wraps |
Relationship |
|---|---|---|
DeviceAdmin |
ThingsBoard CE |
Device CRUD, alert subscription, credential management |
ThingIO |
Apache StreamPipes |
Data pipelines, dashboard engine, widget rendering |
OTAForge |
Eclipse hawkBit |
Artifact storage, rollout engine, proxied DDI endpoint |