Skip to content

MQTT Integration

RUSEON Core uses Eclipse Paho MQTT to publish AI metadata and system telemetry to external brokers.

Architecture

  • Buffering: Uses a LockFreeRingBuffer with a capacity of 1024 messages. This ensures that a slow MQTT broker cannot block the core video processing pipeline.
  • QoS: Messages are published with QoS 0 (At most once delivery) and are not retained.
  • Delivery: Fire-and-forget. The publisher does not block waiting for acks.
  • Reconnection: Handled natively by Paho, with a 5-second retry interval.

Topics and Payloads

The MQTT publisher primarily broadcasts the MetadataRequest JSON payload (originally received via gRPC).

Example Payload:

json
{
  "camera_id": "cam-01",
  "pts": 16918234000,
  "objects": [
    {
      "label": "person",
      "confidence": 0.95,
      "x": 0.1,
      "y": 0.2,
      "width": 0.15,
      "height": 0.4
    }
  ]
}

Performance Note

Due to the LockFreeRingBuffer limit of 1024, if the MQTT broker goes down or connection speed is extremely low, older metadata will be dropped (drop-newest policy) to keep the system responsive.

Released under the MIT License.