SpecsModelExplore
Overview
Actors
External Systems
IoT Platform
Edge
Ingestion
MQTT Broker
Command Router
Command RepositoryDelivery EnginePriority Queue
Stream Processing
Device Management
User-Facing Apps
Platform
Delivery Engine
Delivery state machine
Behaviour
SpecsModelExplore
Delivery Engine
OverviewGuideLinks and Communications

Delivery Engine

The Delivery Engine is where a stored command becomes an actual MQTT message. It pulls the next command for a device, publishes it on the command topic, starts an ack timer, and decides whether the result is success, retry or failure.

At-least-once, made safe

Delivery is at-least-once, so a device can legitimately receive the same command twice (e.g. ack lost on the way back). Commands carry a stable id and devices are expected to de-duplicate on it.

Delivery state machine

Behaviour

  • Commands are pulled in priority order from the Priority Queue, so urgent instructions are not stuck behind routine ones.
  • The ack deadline is 30s; up to 5 retries are attempted with backoff before a command is marked failed.
  • Every attempt is recorded as a DELIVERY_ATTEMPT in the Command Repository, and command bodies are encoded with Protobuf to keep wire frames compact for constrained devices.