We talked about the MQTT ( Message Queuing Telemetry Transport ) messaging protocol for communication with IoT devices. The central component of its network is the message broker – the server that sits between IoT devices and the applications used for the configuration and collection of data. It ensures secure two-way communication across clients, thus performing its brokerage functionality.
MQTT owes its popularity to several significant features. One is its lightweight nature, making it applicable to all IoT devices imaginable. It is also extremely scalable and supports TLS encryption plus OAuth2.0 mechanism: so there is no compromise on security or performance when your network scales. It also offers QoS (Quality of Service) which ensures a robust messaging service. However, another notable advantage is that MQTT is available as open-source, which has attracted a community of contributors. While some of the popular implementations are proprietary, here we present a few of the open-source message brokers that caught out attention.
Mosquitto
Written in C, Mosquitto is certainly among the top choices for an MQTT broker. It is lightweight and scalable. One potential downside of Mosquitto is its lack of support for clustering and multi-thread CPU usage. It’s worth noting that Mosquitto is available in both open-source and Pro versions. Pro Mosquitto offers MQTT broker and client administration and monitoring, MQTT High Availability, MQTT and REST API access, improved reliability, enhanced security, and professional support.
EMQ X
EMQ X is a highly scalable broker solution boasting high availability and messaging support for as many as 10+ million clients on a single cluster. It is written in Erlang and the 3.0 version supports MQTT 5.0 with backward compatibility to MQTT 3.x.
Cassandana
Starting off as a fork of Moquette, Cassandana is a Java solution with MQTT compliancy and support for all major features the protocol can support.
Ejjaberd
Another project is written in Erlang, the MQTT 5.0 broker services run on top of an XMPP server and is proven to handle easily millions of concurrent connections.
HiveMQ – Enterprise MQTT Broker
Developed in Java, HiveMQ is a popular MQTT broker solution that works with MQTT 3.x and MQTT 5. The solution itself is not open source but comes with a range of open-source plugins for custom functionality and integrations.
Disclaimer: The presented list is entirely informative. Teracom is not associated in any way with vendors of listed software implementations, nor is this list meant to discredit any of the implementations omitted herein.