Skip to content
Protocols

Quality of Service (QoS)

The delivery guarantee a messaging protocol provides per message; MQTT defines level 0 at most once, level 1 at least once and level 2 exactly once.

In MQTT, QoS is chosen by the publisher for each message and separately by each subscriber for each subscription, and the broker delivers at the lower of the two. QoS 0 is fire and forget: one packet, no acknowledgment. QoS 1 waits for an acknowledgment and retransmits, so duplicates are possible. QoS 2 uses a four-step handshake to guarantee a single delivery.

The levels trade bandwidth, latency and client-side state against certainty. A temperature reading every ten seconds can use QoS 0, because the next one will arrive anyway, while a billing event or an alarm might justify QoS 1 with idempotent handling on the receiver. QoS 2 is rarely needed and expensive on constrained links. In DDS the same term covers a much broader set of policies, including deadlines and durability. See MQTT explained.

Part of the IoT Glossary. Spotted an error or a missing term? Tell us.