MigratoryData 6 adds support for the MQTT protocol – the de facto messaging standard for the Internet of Things.
Version 6, just released in public beta, comes with many enhancements. One of the most notable ones is the new architecture which supports additional protocols besides MigratoryData’s realtime protocol.
The new architecture maintains the proven architecture principles for achieving reliable messaging to a large number of users described in our recent ACM paper Reliable Messaging to Millions of Users with MigratoryData1.
MQTT is the first protocol to benefit from the new architecture, shaping MigratoryData as a scalable enterprise MQTT broker.
The Internet of Thinks (IoT) is growing rapidly. The continuously increasing number of connected IoT devices, with millions of new devices connecting every day, brings scalability challenges for the MQTT messaging software required to enable the communication between the connected IoT devices and the backend enterprise services.
On one hand, cloud-based IoT platforms from large providers typically come with scalable MQTT messaging and can be used cost-effectively for many IoT projects. Nevertheless, as soon as millions of connected devices are involved, the messaging costs of such cloud-based IoT platforms increase substantially.
On the other hand, there are several open-source MQTT messaging software which are freely available. However, their limited scalability makes the deployment of large IoT projects financially impractical, given the large number of broker instances needed to be deployed.
Since almost one decade, deployments in various industries use MigratoryData to efficiently achieve messaging to millions of users. MigratoryData with MQTT support can be used to build scalable IoT projects in an affordable way.
The “bilingual” MigratoryData server speaking both the MQTT protocol and MigratoryData’s realtime protocol is opening to a wider variety of use cases:
- Enable realtime communication between IoT devices speaking MQTT and backend enterprise services as well as web, mobile, and desktop applications speaking either MQTT or MigratoryData’s realtime protocol.
- The MQTT libraries available for many languages and technologies could be used to connect new applications built with such languages and technologies not currently supported by MigratoryData.
The full interoperability between the two protocols is shown in the diagram2 below. For example, a client can use the MQTT protocol to subscribe to a topic, and get realtime messages published by a client using MigratoryData’s realtime protocol.
Like MigratoryData’s realtime protocol, MQTT is a lightweight publish/subscribe protocol, requiring minimal processing on the client side. MigratoryData’s real-time protocol is very bandwidth efficient. However, being a text protocol, it is slightly less bandwidth efficient than MQTT which is a binary protocol. Hence, MQTT could be preferable to MigratoryData’s realtime protocol when extreme bandwidth optimization is required or even when using open standards is important, given that MQTT is an open ISO standard.
That being said, MigratoryData’s MQTT implementation can be used to build not only large IoT deployments but also scalable realtime web, mobile, desktop, and enterprise applications using the various MQTT client libraries available in the market.
Note that MigratoryData only supports QoS level 0 for MQTT at this time. MigratoryData’s libraries might be used if a higher QoS level is required.
- … MigratoryData1
- This is a preprint of the paper originally presented at the ACM/IFIP/USENIX International Middleware Conference 2017, University of Nevada, Las Vegas and published in the proceedings of Middleware 2017, copyright ACM, 2017.
- … diagram2
- The IoT icons are designed by Freepik from Flaticon.