HiveMQ goes open source: “We want to give something back to the Java community”
It has just been announced: The MQTT Message Broker, HiveMQ, will be open sourced under the Apache 2.0 license, to the delight of many Java developers. We talked with Dominik Obermaier, technical director of HiveMQ / dc-square GmbH about this step, the technical aspects of HiveMQ, and the future of the project.
JAXenter: Hello Dominik and thank you for your time. HiveMQ is a Message Broker for MQTT3.x and MQTT 5. Now, it is available as open source software (under the name of HiveMQ Community Edition). Could you briefly outline what functions HiveMQ takes on in an application exactly?
Dominik Obermaier: The HiveMQ Community Edition is a server-side implementation of the MQTT standard, a so-called MQTT message broker.
For Internet of Things applications, the MQTT Message Broker is the heart of all communication of various (hardware) devices, mobile apps, server applications, and microservices. With MQTT, all these sensors, actuators, and applications can exchange messages and data without knowing the communication participants themselves, because the MQTT Message Broker is responsible for distributing the data. This enables highly decoupled, expandable, and maintainable applications.
This is particularly important in IoT use cases, as it is often difficult to update software for physical devices in the field.
JAXenter: Not only has HiveMQ become open source, but the HiveMQ MQTT Client as well. What can users do with it?
We want all developers to be able to use high-quality MQTT implementations.
Dominik Obermaier: The HiveMQ Community Edition allows users to utilize a free MQTT broker. Many of the world’s largest IoT applications have been using it for a great deal of years. The MQTT broker implements 100% of all MQTT features, including all optional features.
An open Java-based extension system allows the development of custom extensions, in order to connect the broker directly to third party systems. For example, it can write data directly into a database or implement project-specific access controls.
The HiveMQ Community Edition is a fully-fledged broker that has been hardened in mission-critical applications for years and scales extremely well. Hundreds of thousands of MQTT clients can exchange thousands of messages on commodity hardware with low CPU and memory consumption.
JAXenter: Beside the Community Edition, there is also a commercial Enterprise Edition. What are the differences?
Dominik Obermaier: The HiveMQ CE is the MQTT core of the commercial HiveMQ connectivity and messaging platform. There are no limitations in usage. It is perfectly suited for private use (e.g. home automation), use in POCs, or even in production if there is no need for professional support.
The commercial variant is designed for use cases that are mission-critical for customers and therefore have high requirements for security, high-availability, monitoring, or observability. Among other things, it offers a web-based control center and clustering for making linear scaling possible. Our website’s overview discusses all of the differences.
JAXenter: Lately, it is not unusual for a commercially successful product to become open source. How did this decision come to be?
Dominik Obermaier: MQTT has become the most popular IoT protocol over the years. We also worked on open source projects ourselves in the past.
After HiveMQ became a huge commercial success (Deloitte named us one of the fastest growing German companies), more than 120 customers accompanied into production, including many Fortune 500 companies. We want to give something back to the Java community.
HiveMQ provides greater diversity in the IoT ecosystem.
That is why we started developing our own Java MQTT client library together with BMW Car IT, available under the Apache 2.0 license. It was a logical step to release the core of our commercial product as open source software. For a long time we have been getting a lot of feedback from the community that a high-quality Java-based MQTT broker will close a gap for many projects.
JAXenter: From a technological point of view, what are your goals for these projects with this change to open source?
Dominik Obermaier: We invest very heavily in open source. Both open source projects are actively maintained and developed by our employees.
Three things are particularly important to us:
- We want all developers to be able to use high-quality MQTT implementations. IoT applications are almost always production-critical, so it is important for us to provide professional open source software.
- We want to strengthen the ecosystem around MQTT. Currently, there are very few open source alternatives for both brokers and clients. Eclipse Paho and Eclipse Mosquitto are currently the most widely used software in this area. Now HiveMQ is an alternative, resulting in greater ecosystem diversity.
- Of course, all further developments in the open source area will also flow back into the commercial product. This will make faster innovations for our customers.
JAXenter: More and more, MQTT is becoming the de facto standard for machine-to-machine communication (M2M). MQTT 5 just released. Which innovations are currently in development?
Dominik Obermaier: Both the HiveMQ client library and the HiveMQ CE support MQTT 5 100%. There are many improvements and new features. These can be found in my JAXenter article or on the MQTT 5 website.
JAXenter: Thank you very much for the interview!