1010 B
ADR 0005: MQTT Reporting Transport
Status
Proposed
Context
FreeDMR needs live local dashboard state and non-real-time global lastheard feeds without blocking packet handling.
Decision
MQTT is the preferred external live reporting transport, fed through a non-blocking bounded queue and independent publisher.
Rationale
MQTT is lightweight, familiar in radio/network operations, supports topics, retained state, last-will messages, and network fanout. A local broker lets extra consumers attach without adding work to the packet process.
Consequences
FreeDMR gains a broker dependency or optional integration. Reporting completeness is best-effort under pressure.
Compatibility
Legacy dashboard consumers need an adapter or dashboard update. Packet routing must continue if MQTT or consumers are unavailable.
Testing Requirements
Tests must cover enqueue, overflow/drop policy, publisher disconnect/reconnect events, retained state refresh, and packet-path non-blocking behaviour.