Home    Blog    mqtt-broker-comparison-mqttroute-vs-mosquitto

MQTT Broker Comparison – MQTTRoute vs Mosquitto

by Ranjith Kumar DSM | Dec 8, 2020 | MQTT Broker | 0 comments


MQTTRoute vs Mosquitto

MQTT is one of the most widely adopted protocols today in the Internet of Things (IoT) Arena. There are a lot of MQTT Brokers available for your solution implementation.  Choosing the right one that fits your criteria makes your project more than 50% complete. Developers should evaluate and lay out distinct quality aspects of all available Brokers to make a right choice. In an article earlier this year, we wrote about How to choose a perfect MQTT server for your implementation. Bevywise MQTTRoute is a commercial MQTT server built using C and python. Similarly,  Mosquitto MQTT message broker is one of the fastest open source broker built on C. This article gives a high level overview of the MQTT Broker comparison between MQTTRoute and Mosquitto.

MQTT Compliance

Both Mosquitto and Bevywise are built as per MQTT protocol specification like publish message format, command messages, QoS(Quality of Service), retain, Wild card topics and error handling etc.

MQTT Security

Security of a broker is largely determined by the user configuration and only to a lesser extent by the broker’s security features. These include authentication and authorization mechanisms, as well as encryption support. In that case both MQTT Brokers support high level device authentication & TLS/SSL MQTT security. With the recent update, Bevywise MQTTRoute comes with the custom authentication functionality to execute centralized identity management / authentication.

High Availability

MQTT Broker must be highly available in order to never miss / loss any MQTT data. It should be up and running without any failure and hence you need MQTT clusters for it. In that case, Bevywise MQTTRoute supports clustering which can be used to set up 99.99% high availability MQTT cluster. As of now Mosquitto doesn’t handle high availability in it.

MQTT Data Persistence

IOT / IIoT is not about communication. It is about storing data for future analysis and decision-making. Mosquitto by default process all the message communication in memory. There is an option to store data of subscription into a file (mosquitto.db). But this file cannot be used outside the application. However, MQTTRoute comes with a default option to store data into MySQL, SQLite & PostgreSQL.  We recommend MySQL for deployments and the application you are building can also query the database in parallel. In addition MQTTRoute allows you to write data into ElasticSearch, MongoDB or any other storage using the plugin system built into it.

MQTT Dashboard

There is a critical issue in the MQTT Implementation today. It is the manager applications are built over the data received by an MQTT client that subscribe to #. But, this is not the right as the meta information of the data is lost. So this mandates the need for the Broker to be integral part of the application. Keeping this in mind, we have built the UI into the MQTT Broker. We have built a comprehensive MQTT Dashboard as part of the MQTTRoute as well as the Platform. Also, MQTTRoute supports creating multiple dashboards with some pre-built widgets intended to provide better visualization of data. However, Mosquitto does not have any User interface as the data persistence itself is not available. There are some third party User interfaces which are built as a client.

Customization

Above all, the default web interface of the MQTTRoute can be customized as needed. The Product can be white labeled. Mosquitto as a open source MQTT broker can be customized to a larger extent. But the customization is more on the C layer for the Mosquitto and all the building blocks over it need to be recreated. Bevywise MQTTRoute on the other hand allows customization at the application layer. Some of the customization includes changing the User interface, advanced visualization, transforming data before storage. Moreover, Bevywise MQTTRoute is not just a Broker, it is a complete IoT application suite with the extendable custom hooks. The custom hooks include Custom UI server, Custom scheduler, Custom data store & Custom authentication.

Integration

Data Hooks, REST API and ML/AI Integration are the three major integration end points of the Bevywise MQTTRoute. MQTTRoute makes a huge leap ahead when you want to build an application over the Mosquitto. With the support of AI/ML integration you can add a ML algorithm into MQTTRoute to automate your machine learning process. Other than REST API’s, Bevywise MQTT server can be customizable to integrate with other MQTT based tools like Google pub/sub, Redis, tableau, modbus and more. Besides that, the cost and the effort spent on customization will be very minimal when compared to Mosquitto.

MQTT Broker Performance Comparison

Performance of MQTT Broker depends on two main metrics. One is the maximum sustainable throughput and the other is the average latency. The first metric is the maximum sustainable throughput at which the Broker is able to process all communicated MQTT messages. In terms of sustainability, Mosquitto is built on C and Bevywise MQTTRoute is built on a combination of C & Python for easy extendability and performance. Mosquitto is the fastest MQTT server available today when run as just a message broker. Bevywise MQTTRoute has a throughput at par with the Mosquitto.


The next one is the average latency from publisher to subscriber in a given scenario. Short latencies are important for many IoT applications, where live monitoring of real-time data is desired. In terms of latency, both has a lower latency/message delivery time across all QOS levels. And also, MQTTRoute has the exposure of better latency (less round the trip time) than Mosquitto in QOS 0. To know more on MQTT Broker performance, have a look at the performance comparison study done by University of Szeged, Hungary.

Support & Consulting

MQTTRoute comes with a FREE Support where in we do consulting for your implementation while you will not be getting these supports on the Open Source Brokers. We also provide FREE email / chart support for FREE users. Read more about our support policy.

MQTT Broker comparison Table

Features MQTTRoute Mosquitto
Protocol MQTT, Web socket MQTT, WebSocket
Visualization of Data In built Dashboard with details of Devices level. Manage devices with send command, create Rules via UI. Multiple dashboard & widgets support. third party plugin
Security TLS/SSL, device level Authentication, Custom Authentication TLS / SSL , device level authentication
Inbuilt Storage Options MySQL / SQLite / PostgreSQL Allows Third-party application to read. Store data in-memory & File Only for Internal purpose
Extendable data Storage Extension based Storage using Custom_storage option. Prebuilt connectors available in Github. third party plugins for Storage
OS Windows, Windows server, Linux, and Raspberry Pi Linux, Mac, Windows and BSD
Rule Engine YES. Custom Rules can be added from the User Interface. No
Error Log YES. Time Out errors , Authentication, Packet errors are deducted and shown on the UI. Yes, Enabled at the conf file and show in the Terminal
Localization Yes. Option to customize to any language No
Clustering Yes. No. One used as a single cluster
SaaS based Yes. IoT Platform supports SaaS based Scalable architecture No.
Throttling Developed and will be available soon Yes
Complete MQTT Standard Support Yes Yes
Integration REST API , Data Plugins, ML/AI Only DATA Plugins
Docker Support Yes Yes
Whitelabel Yes Yes
Open source No Yes
Built on C / Python language C language
MQTT version Current support MQTT 3.1.1 and MQTT 5 coming soon Current support MQTT 3.1.1
Support 24×7 live support via Telephone, Whatsapp, Email. Forum support

The overall MQTT Broker comparison between MQTTRoute & Mosquitto will help you choose the best one for your IoT implementation.


Feel free to write to support for a complete Demo.


To get started sign up for hosted setup or download a forever free version for local installation.



Get MQTTRoute app now on play store.

Submit a Comment

Please take a moment to fill this form