QoS (Quality of Service)
MQTT delivery guarantee level set per message.
| QoS | Name | Guarantee | Mechanism |
|---|---|---|---|
| 0 | At most once (Fire & Forget) | May be lost | No ACK |
| 1 | At least once | Delivered but may duplicate | Sender retries until ACK |
| 2 | Exactly once | Delivered exactly once | Two-level handshake |
Two independent QoS settings:
- Publisher → Broker: set when publishing
- Broker → Subscriber: set when subscribing
If subscriber’s QoS < publisher’s QoS, broker uses the lower value.
Default MQTT sessions use QoS 0 (clean sessions) — messages lost during disconnection are not recovered. Persistent sessions with QoS 1 or 2 recover missed messages.
See Also
- MQTT and IoT Protocols topic
- MQTT Broker concept