Automation Glossary • MQTT QoS Levels (0, 1, 2)

What Are MQTT QoS Levels (0, 1, 2)?

Merobix Engineering • • 6 min read

MQTT lets each message carry a quality-of-service level that decides how hard the protocol works to deliver it, trading network overhead against the risk of losing or duplicating data. The three levels run from fire-and-forget to a full four-step handshake that guarantees exactly one delivery. This guide explains QoS 0, 1, and 2, what each costs in round trips and risks in loss or duplicates, and how to pick a level for telemetry crossing a flaky cellular link where a gap or a double count actually matters.

Back to Blog

MQTT QoS Levels (0, 1, 2) in one line: MQTT defines three quality-of-service levels for message delivery. QoS 0 is at most once, sent with no acknowledgment, so it is cheapest but can be lost. QoS 1 is at least once, acknowledged and retried until confirmed, which guarantees arrival but can deliver duplicates. QoS 2 is exactly once, using a four-part handshake to guarantee a single delivery with no duplicates at the highest overhead. Higher levels cost more round trips for stronger guarantees.

QoS 0, 1, and 2 in Detail

QoS 0, at most once, is the simplest. The sender publishes the message and moves on with no acknowledgment and no retry - it is sometimes called fire and forget. If the message reaches the broker, fine; if the network drops it, it is simply gone and no one retransmits. This makes QoS 0 the lightest option, one message on the wire with no follow-up, but it offers no delivery guarantee at all. It suits frequently repeated readings where a single lost sample does not matter because another is coming shortly.

QoS 1, at least once, adds acknowledgment. After publishing, the sender waits for a confirmation and, if none arrives in time, resends the message. This guarantees the message will arrive - it keeps trying until acknowledged - but it introduces the possibility of duplicates: if the original arrived and only its acknowledgment was lost, the resend delivers a second copy. So QoS 1 trades a little overhead and the chance of duplicate messages for a guarantee that nothing is silently lost. A receiver often has to be prepared to handle the same message twice.

QoS 2, exactly once, is the strongest and heaviest. It uses a four-part handshake that both guarantees delivery and ensures the message is processed only one time, eliminating both loss and duplication. That certainty costs the most: two round trips of protocol exchange per message rather than one or none, plus state the broker and client must track until the handshake completes. QoS 2 is reserved for messages where a duplicate would cause real harm and the extra traffic is worth paying to prevent it.

Overhead Versus Delivery Risk

The three levels form a clean spectrum of the same trade-off: the more the protocol guarantees, the more it must talk. QoS 0 sends one packet and hopes; its risk is silent loss and its cost is essentially nothing beyond the message itself. QoS 1 sends the message and one acknowledgment, doubling the minimum exchanges and adding retransmission when acknowledgments go missing; its risk shifts from loss to duplication. QoS 2 spends a full four-way handshake to remove duplication as well, at the highest cost in round trips and broker bookkeeping.

On a reliable local network these differences barely register, but on a lossy link they become significant in two ways at once. Higher QoS means more packets that each have to survive the link, and a marginal connection that drops packets will force more retries at QoS 1 and more handshake completions at QoS 2, amplifying traffic exactly when bandwidth is scarce. At the same time, that same lossy link is where QoS 0's silent loss is most likely to bite. There is no universally right answer; the correct level depends on how much a lost or duplicated message actually costs for that particular data.

It also matters that delivery guarantees are per hop and per message, not a blanket promise about the whole system. QoS governs the reliability between a client and the broker; it does not by itself reconcile data across a reconnect or guarantee end-to-end semantics through every layer above. Understanding what each level does and does not promise is what keeps engineers from either over-spending on QoS 2 everywhere or assuming QoS 0 telemetry is more dependable than it is.

Choosing a QoS Level for Telemetry Over a Flaky Cellular Link

For routine telemetry that publishes often - a pressure or level sampled every few seconds - QoS 0 or QoS 1 is usually the right call, and the choice hinges on whether a gap matters. If the value is sampled so frequently that one missing reading is immediately superseded, QoS 0 keeps traffic minimal and a lost sample is harmless. If each reading is meaningful and you cannot tolerate silent gaps, QoS 1 guarantees arrival at the modest cost of occasional duplicates, which a well-designed consumer can absorb by keying on the message's own content or timestamp.

QoS 2 earns its keep for messages where a duplicate would genuinely cause trouble - a command, a critical alarm event, or a cumulative count that must not be double-applied. On a flaky cellular link, QoS 2's guarantee of exactly-once is valuable precisely because retries are common, but its extra handshaking is also heaviest when the link is dropping packets, so it is best reserved for the handful of messages that need it rather than applied to a firehose of routine readings. The discipline is to match the level to the consequence of getting a particular message wrong.

For a cloud SCADA such as Merobix ingesting field data over MQTT, this usually means a deliberate mix rather than one blanket setting. High-frequency telemetry can flow at a lower QoS to keep a metered cellular link efficient, while the events that must not be missed or double-counted use a higher QoS. Combined with MQTT's retained messages and last-will mechanisms, choosing QoS per message type is how Merobix keeps a remote site's data both affordable to move and trustworthy where trust is required - spending reliability where a mistake would matter and saving bandwidth where it would not.

Frequently Asked Questions

What is the difference between QoS 1 and QoS 2 in MQTT?

QoS 1 is at least once: the message is acknowledged and retried until confirmed, so it always arrives but may arrive more than once as a duplicate. QoS 2 is exactly once: a four-part handshake guarantees the message is delivered a single time with no duplicates. QoS 2 gives stronger certainty at the cost of more round trips and broker state.

Does QoS 0 mean my data will be lost?

Not necessarily - QoS 0 means there is no guarantee, not that loss is certain. On a healthy link most QoS 0 messages arrive fine, but there is no acknowledgment or retry, so any message the network drops is gone silently. It is a good fit for frequently repeated readings where an occasional missing sample is immediately superseded by the next one.

Should I just use QoS 2 for everything to be safe?

Usually not. QoS 2 has the highest overhead - a four-part handshake per message plus broker state - which is wasteful for high-frequency telemetry and worst on a lossy link where retries pile up. It is best reserved for messages where a duplicate or a miss truly matters, such as commands or cumulative counts, while routine readings use a lighter level.

Sources and verification

This page references the protocol specifications published by the organizations below. Editions, product capabilities, and documentation change over time - confirm current requirements and specifications directly with the source.

Last reviewed: July 27, 2026. Merobix is not affiliated with, endorsed by, or sponsored by these organizations; their names are used only to identify the standards and products discussed.

From Definitions to a Live Dashboard

Merobix reads your field devices into a cloud SCADA - the real thing behind these terms, live in days from any browser.

Request a Free Demo +1 (903) 307-7300
More in Automation Glossary
MQTT Retained Message  •  MQTT Last Will and Testament (LWT)  •  Subnet Mask and CIDR for SCADA Networks  •  Default Gateway in a SCADA Network  •  Bubble Point Pressure  •  PVT Analysis  •  All Automation Glossary →
Free SCADA operator training
Merobix University - 70 video lessons & 261 quiz questions, from first login to compliance reporting. No demo call required.
Start free →