# 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.