History of MQTT
The short answer
MQTT was written in 1999 by Andy Stanford-Clark of IBM and Arlen Nipper of Arcom to watch oil pipelines over satellite links that charged for every byte. Its smallest message is 2 bytes. IBM made it royalty free in 2010, it became an OASIS standard in 2014 and the international standard ISO/IEC 20922 in 2016, and MQTT 5 followed in 2019. Sparkplug, published in 2016, added shared names for plant data and became ISO/IEC 20237 in 2023.
- MQTT
- A lightweight publish and subscribe messaging standard. Devices publish readings to a broker under named topics, and any system subscribed to a topic receives them.
Watch the film
Narrated, about 6 minutes. Press Play. The voice is your browser’s own, so it sounds different on each device. Open full screen
The story
Today· Your floor
Where it starts
Every machine on your floor knows something you want to know. Is it running? How many parts has it made? Did it just stop? For 60 years, engineers have tried to get that news off the floor cheaply and on time. This is the story of a small messaging standard called MQTT. It started on an oil pipeline, and it ended up on the plant floor.
1960 to 1999· Polling
Asking every station
Pipelines, power lines and water systems were watched from a central room. From the 1960s, the central station asked each remote station for its readings, one after another, over phone lines and radio. In 1979, Modicon published Modbus, and plant floors learned the same habit. Ask every device, every few seconds, whether anything changed. Most of the time, nothing had. Every answer still cost time and bandwidth.
1999· IBM and Arcom
A pipeline, by satellite
In 1999, Andy Stanford-Clark of IBM and Arlen Nipper of Arcom Control Systems had a pipeline to watch. Its sensors reported over satellite links, and the links charged for every byte. Asking each station for its readings all day would have been expensive. So they wrote something smaller. One history says the first version came out in 1998. Most say the start of 1999.
1999· Publish and subscribe
Speak when something changes
Their idea turned polling around. A device sends a reading only when it changes. It publishes that reading once, to a broker, under a name that looks like a file path. Anyone who cares subscribes to that name, and the broker passes the reading along. The device never needs to know who is listening. One early name was MQ Integrator SCADA Device Protocol. The MQ came from IBM’s MQSeries products.
1999· The smallest message
Two bytes
MQTT was built to be cheap to send. The smallest message is 2 bytes. The first byte says what kind of message it is. The second says how much follows. A reading adds its topic name and its value, and little else. At the time, equipment makers each had their own poll and response formats, hundreds of them. Over a satellite link priced by the byte, small mattered.
1999 to 2010· Delivery promises
Built for bad connections
Remote links drop. MQTT planned for it. Each message can ask for one of 3 delivery promises: at most once, at least once, or exactly once. A device can leave a last will with the broker, a message sent on its behalf if it disappears without saying goodbye. And the broker can keep the last value on each topic, so a new listener learns the current state right away.
2009 to 2011· Open source
Given away
For about a decade, the specification sat mostly in IBM’s product manuals. Then it opened up. Roger Light heard Andy Stanford-Clark speak and started Mosquitto, a free MQTT broker. He dates that to 2009. The Eclipse proposal says 2010. In 2010, IBM and Eurotech published MQTT 3.1 for anyone to use without royalties. In November 2011, IBM gave its client code to the Eclipse Foundation.
2011· Facebook Messenger
A chat app
The first famous user was a chat app. In August 2011, Facebook’s engineers explained how they built the new Messenger. They chose MQTT because it used little bandwidth and little battery. By holding one connection open, they often got a message from phone to phone in hundreds of milliseconds, where it had taken several seconds. What worked for a pipeline worked for a phone in a pocket.
2013 to 2019· OASIS and ISO
Made a standard
A free specification still belongs to whoever writes the next version. In 2013, IBM handed MQTT to OASIS, a standards body, and a committee of companies took it over. MQTT 3.1.1 became an OASIS standard in late 2014. The vote closed in October, and OASIS announced it in November. In 2016, it became the international standard ISO/IEC 20922. MQTT 5 followed in March 2019.
2015 to 2016· AWS and Azure
The cloud subscribes
Then the big cloud companies arrived. Amazon announced AWS IoT in October 2015 and opened it to everyone that December. Devices could connect over MQTT. In February 2016, Microsoft’s Azure IoT Hub followed, with MQTT built in. A sensor could now send its readings to a rented computer anywhere in the world. Free brokers like Mosquitto meant you could also run your own.
2016 to 2023· Sparkplug
Names for the plant
MQTT would carry any message. It said nothing about what a press or an oven should call its readings, so every plant named them differently. In 2016, Cirrus Link, Arlen Nipper’s company, published Sparkplug: shared rules for names and payloads, and for announcing when a device comes online or drops off. It moved to the Eclipse Foundation in 2018. In 2023 it became ISO/IEC 20237.
Around 2020· Namespace
One place to look
Engineers then asked a bigger question. What if every system in the business published to the same broker, under one tree of names? The machines, the schedule, quality, shipping and the orders. Walker Reynolds is credited with the name for this idea, the unified namespace. Any system can find the current state of the plant in one place. When the term was first used is not clear.
Today· Your shop
Who is listening
So here is where 60 years of telemetry lands for an owner. A machine on your floor can report its state, its count and its faults the moment they change. That part is cheap and standard now. The harder question is in the office. Do your quote, your schedule and your invoice hear it? Or does someone still walk out to the machine and write it down?
Key dates
Where reputable sources disagree on a date or on who was first, the row says how.
| Year | Thread | What happened |
|---|---|---|
| 1960 | Telemetry before MQTT | Supervisory control takes shape. Pipelines, power and water systems start gathering readings from distant stations into one control room, over phone lines and radio. The central station asks each remote unit for its data in turn. Sources differ: There is no single first SCADA system. Sources place the start in the 1950s or the 1960s. Source |
| 1979 | Telemetry before MQTT | Modbus. Modicon publishes Modbus for its programmable controllers. One master asks, each device answers. It becomes a common language on plant floors. Source |
| 1999 | The standard | MQTT is written. Andy Stanford-Clark (IBM) and Arlen Nipper (Arcom Control Systems) draft the first version at the start of 1999, to watch oil pipelines over satellite links. Sources differ: Most sources say 1999. Paessler’s history says the first version was released in 1998. Source |
| 1999 | The standard | Several names. Andy Stanford-Clark lists the names in order: On The Wire Protocol, MQ Integrator SCADA Device Protocol, MQ Integrator Pervasive Device Protocol, then MQTT. The MQ came from IBM’s MQSeries messaging products. Sources differ: HiveMQ’s history gives the first name as Argo Lightweight On The Wire Protocol, Argo being an IBM code name. Source |
| 2000 | Plant floor | Arcom Director. Arcom Control Systems launches Director, an industrial network gateway that speaks MQTT. Source |
| 2009 | Brokers and tools | Mosquitto. Roger Light starts a free, open source MQTT broker after hearing Andy Stanford-Clark speak. It later moves to the Eclipse Foundation and becomes one of the most used brokers. Sources differ: Roger Light’s account dates this to 2009. The Eclipse project proposal says 2010. Source |
| 2010 | The standard | MQTT 3.1, royalty free. IBM and Eurotech publish MQTT 3.1. The specification moves to a public home and its license is clarified so anyone can use it. Sources differ: Most sources say 2010. One HiveMQ slide deck says 2012. Source |
| 2011 | Apps and cloud | Facebook Messenger. Facebook’s engineers write that they chose MQTT for the new Messenger app because it uses little bandwidth and battery. Delivery phone to phone often took hundreds of milliseconds. Source |
| 2011 | Brokers and tools | Eclipse Paho. In November 2011, IBM donates its Java and C MQTT client code to the Eclipse Foundation. Source |
| 2013 | The standard | The OASIS committee forms. IBM submits MQTT 3.1 to OASIS. The technical committee is announced in April 2013, with members including Cisco, Eurotech, IBM, Red Hat and TIBCO. Source |
| 2014 | The standard | MQTT 3.1.1, an OASIS standard. The member vote closes on 29 October 2014. OASIS announces the standard on 13 November 2014. Sources differ: Sources date it to October 2014 (the vote) or November 2014 (the announcement). Source |
| 2015 | Apps and cloud | AWS IoT. Amazon announces AWS IoT in October 2015 and makes it generally available that December. Devices connect over MQTT or HTTP. Source |
| 2016 | Apps and cloud | Azure IoT Hub. Microsoft’s IoT Hub reaches general availability in February 2016, with native MQTT 3.1.1 support. Source |
| 2016 | The standard | ISO/IEC 20922. MQTT 3.1.1 is published as an international standard in June 2016. Source |
| 2016 | Plant floor | Sparkplug 1.0. Cirrus Link, Arlen Nipper’s company, releases Sparkplug in May 2016: shared topic names and payloads for plant data over MQTT. The B payload format follows that December. Sources differ: Some accounts put the first release around 2017. The specification’s own revision table says May 2016. Source |
| 2018 | Plant floor | Sparkplug goes to Eclipse. In July 2018, Cirrus Link contributes the specification and reference code to the Eclipse Foundation, as the Tahu project. Sources differ: Some sources date the hand-over to 2019, when version 2.2 of the specification was rebranded for Eclipse. Source |
| 2019 | The standard | MQTT 5. OASIS approves MQTT 5.0 on 7 March 2019, a larger upgrade with several new features. Source |
| 2020 | Plant floor | Sparkplug Working Group. Eclipse launches a working group for Sparkplug. Founding members include Chevron, Cirrus Link, HiveMQ and Inductive Automation. Sources differ: Announced in late 2019. Most sources date the launch to 2020. Source |
| 2020 | Plant floor | The unified namespace. Walker Reynolds is credited with the term: one shared tree of names, usually on an MQTT broker, where every system in a business publishes its current state. Sources differ: We found no source that dates the first use of the term. The year shown is approximate. Source |
| 2022 | Plant floor | Sparkplug 3.0. The first version written under the Eclipse specification process, released in late 2022. Source |
| 2023 | Plant floor | Sparkplug becomes ISO/IEC 20237. The Eclipse Foundation announces on 7 November 2023 that Sparkplug 3.0 is published as an international standard. Source |
Questions
Who invented MQTT?
Andy Stanford-Clark of IBM and Arlen Nipper of Arcom Control Systems, in 1999. One history dates the first version to 1998.
Why was MQTT created?
To watch oil pipeline sensors over satellite links that charged for every byte. In place of polling every station, a device publishes a reading only when it changes, and a broker passes it to whoever subscribes.
Is MQTT a standard?
Yes. MQTT 3.1.1 became an OASIS standard in 2014 and the international standard ISO/IEC 20922 in 2016. MQTT 5 was approved in March 2019.
What is Sparkplug?
A specification first published by Cirrus Link in 2016 that sets shared rules for topic names and payloads on MQTT, so plant data means the same thing across systems. It moved to the Eclipse Foundation and became ISO/IEC 20237 in 2023.
What is a unified namespace?
An approach in which every system in a business publishes to the same broker under one tree of names, so any system can find the current state of the plant in one place. Walker Reynolds is credited with the name.
Sources
- SCADA, Wikipedia
- Modbus, Wikipedia
- The history of MQTT, part 1: the origin, HiveMQ
- MQTT first publication, Andy Stanford-Clark, MQTT Google Group
- From hobby project to IoT cornerstone: the story of Mosquitto, Paessler
- MQTT goes free: a personal Q&A, Andy Piper
- Building Facebook Messenger, Facebook Engineering, August 2011
- IBM open sources messaging client for embedded devices, PCWorld
- MQTT Technical Committee announced, OASIS press release, April 2013
- The history of MQTT, part 2: MQTT 3 standardization, HiveMQ
- AWS Internet of Things platform hits general availability, AWS Insider
- Azure IoT Hub GA capability overview, Microsoft Azure blog
- ISO/IEC 20922:2016, ISO
- Sparkplug specification v2.2, revision history, Eclipse Foundation
- Cirrus Link note to the Eclipse IoT working group list
- MQTT V5.0 OASIS Standard published, OASIS
- Eclipse Foundation launches the Sparkplug Working Group, ARC Advisory Group
- What is a Unified Namespace and how does it work, Automation.com
- Sparkplug 3.0 release, Eclipse Foundation newsroom
- Sparkplug becomes an international standard, Eclipse Foundation
Read more
Running the loop across too many systems?
KoldOps builds the way a shop already runs into one system, quote to invoice, and hands over the code and the data. Tell us what you run today. Kol reads every message.
Write to us