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 telemetry API |
Wraps StreamPipes for pipeline execution; provides Data API for telemetry queries, scope management, and pipeline lifecycle. Consumer apps call APIs and render their own dashboards. |
|
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) │ (Data API, │
call API, │ Pipelines) │ Kafka
own dashboards └──────────────┘
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 telemetry API layer — provides REST APIs for scopes, telemetry queries, and pipeline management, backed by StreamPipes. Consumer apps call ThingIO APIs and build their own dashboards. Three pipeline tiers: managed (auto-provisioned), app (self-service from templates), and platform (operator-built in StreamPipes UI).
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 a single Strimzi cluster on EKS (KRaft mode, 3 brokers). ThingsBoard publishes to
thingsboard.*topics, StreamPipes publishes tosp.analytics.*topics. ThingIO consumes both.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, telemetry API, pipeline lifecycle management |
OTAForge |
Eclipse hawkBit |
Artifact storage, rollout engine, proxied DDI endpoint |