| ID | product.edge.edge_agent |
|---|---|
| Description | Containerized agent running on local gateways. |
| Key | edge_agent |
| Type | microservice:service |
| Team | Edge Platform |
| Owner | edge-platform@iotgateway.example |
| Status | active |
| Technologies | Rust, MQTT, SQLite, Protobuf |
| Attributes | footprint: 48MB, language: Rust, runtime: container |
| Tags |
The Edge Agent is the workhorse process on every gateway. It loads the device drivers, pulls readings off the local bus, persists them durably so nothing is lost during a network blip, and streams them up to cloud ingestion over MQTT. It is also the channel through which firmware and config updates land on the box.
Store-and-forward by default
The agent never assumes the network is up. Every reading is written to the Local Buffer first, then published. On reconnect the backlog drains in order — at-least-once, oldest-first.
Could not build diagram for model "example-iot".
The Driver Loader polls each attached device through its driver and normalises the readings into the internal Protobuf message shape.
Readings are appended to the Local Buffer. This is the durability boundary: once a reading is committed here, it will be delivered even across a reboot.
The MQTT Publisher reads committed batches, ships them to the cloud, and only then advances the sync cursor so acknowledged data can be pruned.
Firmware and config never push directly onto the device. The cloud announces an update; the OTA Updater downloads, verifies the signature, and applies it with an A/B rollback safety net.
Telemetry collected here is the start of the alert pipeline:
Cloud commands are received and acted on by the agent:
Firmware rollouts terminate at the agent’s OTA updater:
3 workflows
| Workflow | Model | Participant id | Participant label |
|---|---|---|---|
| Command dispatch commands.dispatch | example-iot | product.edge.edge_agent | Edge agent |
| OTA firmware rollout device-lifecycle.ota-rollout | example-iot | product.edge.edge_agent | Edge agent |
| Telemetry to alert telemetry.alert-pipeline | example-iot | product.edge.edge_agent | Edge agent |