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 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 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 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.
Written in C, Mosquitto is certainly among the top choices for an MQTT broker. It is lightweight and scalable. Some cons, however, would be its lack of support for clustering and multi-thread CPU usage. Supports MQTT 3.x and MQTT 5.
EMQ X is a highly scalable broker solution that also boasts 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.
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.
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.