Automated factories, smart home systems, self-driving cars: Different as they may seem, all these technologies have something in common. They rely on devices that communicate with each other. In other words, they share data.
For that data to do anything—whether that’s executing an order on a smart CNC machine or tracking a shipping container—your devices must send and receive messages according to the same rules.
These rules are codified by messaging protocols. During the early days of IoT, a lot of competing protocols were floating around. You might find IoT systems based on:
- DDS (Data Distributed Service)
- CoAP (Constrained Application Protocol)
- AMQP (Advanced Message Queue Protocol)
- QUIC (Quick UDP Internet Connections)
- And others
None of these technologies offered the ideal blend of features for IoT, which requires a protocol that excels at:
- Sending small amounts of data over unreliable networks;
- Operating with limited bandwidth and connectivity;
- Using a minimal overhead and small code footprint;
- Functioning well in devices with limited processing power, memory, and battery life.
Luckily, such a protocol was developed in 1999.
It’s called MQTT, and it’s become the de facto standard for IoT communication—both in consumer devices (wearables, smart home products, e-mobility, etc.) and industrial IoT, or IIoT (smart factories, asset tracking systems, smart utilities, and lots more).
Why is MQTT becoming the dominant IoT messaging protocol? Is it the right technology for your IoT/IIoT deployment? And if so, what do you need to build an IoT system that uses MQTT?
Find answers to all these questions and more in this quick introduction to the MQTT protocol, written with the IoT beginner in mind.
Key Benefits of MQTT in IoT/IIoT Deployments
As we mentioned, MQTT isn’t the only protocol in IoT or IIoT. Every technology has its advantages and drawbacks. So what makes MQTT particularly well-suited for IoT communications?
Compared to other protocols, MQTT has five key advantages. It is:
- Lightweight. An IoT device can’t use up too many resources—including energy, network bandwidth, memory, and computing power. The MQTT protocol makes limited demands on network and processing systems.
- Efficient. Small packet sizes and elegant architecture translate into speedy communication, without heavy system demand.
- Capable of bidirectional communication. Devices and cloud platforms can talk to each other with MQTT. Some other protocols only send messages one way or the other.
- Highly scalable. Some protocols place limits on the number of devices that can communicate. With MQTT, your deployment can number in the millions, so there’s no limit to growth.
- Reliably secure. Transport layer security (TLS) encryption is the industry standard for safe wireless communication. MQTT supports TLS as well as authentication protocols you can count on to verify clients. We’ll explain what clients are later in this post.
While these benefits make MQTT ideal for many if not most IoT systems, there are particular industries where the protocol is really taking off. Keep reading to find out if yours is among them.
5 Examples of MQTT Use Cases
The benefits we listed recommend MQTT for IoT deployments that require high-volume, low-energy communication. That means you’re likely to find MQTT in the following scenarios:
- Smart home systems. Automated lighting, HVAC, and security devices—in other words, smart home products—don’t have a lot of computing resources available. MQTT’s small footprint makes it perfect for these devices.
- Industry 4.0. Smart factories, automated warehouses, and other IIoT use cases rely on MQTT for reliable, lightweight communication.
- Smart agriculture. Sensors in the fields can monitor the moisture and chemical composition of the soil. They can keep track of crop growth, too. But all this agricultural IoT requires low-energy communication (otherwise, farmers would spend all day changing batteries)! That makes MQTT ideal for these systems.
- Biomedical IoT. Remote patient monitoring can save lives—but only if data reaches providers in time. The reliability of MQTT makes it a top choice for smart healthcare deployments.
- Smart transportation and mobility. From e-scooters to smart cars, mobility IoT requires dependable, quick wireless communication.
Of course, these are just a few of the countless examples of MQTT’s role in IoT and IIoT deployments around the world. If your system requires a lightweight protocol that you can count on, MQTT is probably the right choice. But how exactly does it work?
MQTT Architecture At a Glance
Without getting too technical, here are the core components defined by the MQTT protocol. In the discussion below, a client refers to any hardware or software that can access data within the network.
- Publisher. This is a client that generates messages.
- Subscriber. This is a client that receives messages. Clients may be publishers, subscribers, or both.
Broker. This is the platform—an application, device, or server, usually—that manages message traffic between publishers and subscribers (and vice versa).
This arrangement is called a Pub/Sub architecture, and it’s the presence of the broker that really sets it apart from other messaging protocols. The broker handles all the actual data transfer, so there’s no direct connection between publishers and subscribers.
That prevents data bottlenecks and creates a more flexible communications environment because publishers and subscribers can operate asynchronously.
Of course, the MQTT protocol may not fulfill your unique requirements right out of the box. You may have to customize your MQTT instance. To do that, you need to build a custom specification on top of MQTT.
Custom specifications are a bit beyond the introductory level we’re covering here, but if you’re interested, here’s a guide to building a specification on top of MQTT.
That just leaves one question: Once you commit to MQTT, which broker should you choose? Here are a few things to consider when making that choice.
Choosing an MQTT Broker: 5 Features to Look For
The right MQTT broker will always depend on where and how you’re hosting your IoT system. Brokers are available in at least four types:
- Commercial
- Open source
- Cloud-managed
- General purpose
Fully-managed broker platforms are available, or you can find versions that run on a private server, or cloud platforms like Microsoft Azure or Amazon Web Services.
So the first step is to find the broker that works with your hosting technology. Regardless of which edition suits your use case, however, choose an MQTT broker that provides the following features:
- Support for enough connections to cover your devices. If you run a massive IoT deployment—or plan to scale into the millions—it’s important to find a broker that can manage all those client connections, ideally with strong load balancing built in.
- Message filtering. Messages within MQTT are organized by topic. Be sure your broker can filter messages based on that topic, and identify the appropriate subscribers for each.
- Extensible security. Standard security may not be enough for your use case. Look for a broker that supports custom security integrations, including authentication and authorization strategies.
- Failure resistance. Three factors make up the failure-resistant MQTT broker: event-driven network processing, standard monitoring providers, and open extension systems. Look for all three in your broker.
- Broker clustering. In MQTT, “clustering” refers to multiple instances of your broker coordinating work to manage high-volume messaging. If your broker includes this feature, you can scale up without worry.
It also helps to choose an MQTT broker that includes plenty of reporting tools, including data visualizations. The broker should fit within your budget. And—most importantly—implementation and use should be user-friendly.
If it sounds like MQTT is the right choice for your IoT/IIoT project, start by finding a broker that checks all these boxes.