QoS (Quality of Service)

MQTT delivery guarantee level set per message.

QoSNameGuaranteeMechanism
0At most once (Fire & Forget)May be lostNo ACK
1At least onceDelivered but may duplicateSender retries until ACK
2Exactly onceDelivered exactly onceTwo-level handshake

Two independent QoS settings:

  1. Publisher → Broker: set when publishing
  2. 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