Improved MQTT Support in InfluxDB with SurgeMQ

Todd Persen — June 23, 2016

As InfluxDB has grown in popularity over the past two and a half years, we’ve seen it used in many different use cases across custom DevOps monitoring, real-time analytics, and the Internet of Things (IoT). Each of these domains has its own patterns, standards, and protocols, so we’ve been working hard to make Telegraf, our open-source data collection agent, support as many services and systems as possible. This helps our users get data into and out of InfluxDB easily and enables developers to keep building awesome new applications.

MQTT is an example of one of the aforementioned protocols, which is heavily used in industrial monitoring and has become increasingly popular in IoT applications. We recently added support to Telegraf for consuming data from MQTT brokers, but given the amount of segmentation in the MQTT broker space and the specific requirements of high-performance brokers (e.g. very high numbers of concurrent connections), we started to pursue the possibility of building our own MQTT broker to ensure the tightest possible integration with the rest of our products and allow us to more effectively work with customers and partners to build IoT solutions backed by InfluxDB.

We’re huge supporters of the Go programming language, as we’ve discussed in the past, so it was important to us that the project be written in Go for optimal productivity, performance, and community engagement. When we began our investigation, we discovered the SurgeMQ project, written in Go by the brilliant and incredibly talented Jian Zhen. After a few weeks of initial discussions, we received Jian’s blessing to officially take over the project. Says Jian, “I’ve been watching the InfluxDB project from its early days, and I’m a huge fan. I’m happy to see SurgeMQ helping people use InfluxDB in new ways.”

Effective immediately, we’ll be working to finish turning SurgeMQ into a standalone server and begin building packages for it alongside the rest of our products.

Why does this matter?

First and foremost, becoming the official maintainers of SurgeMQ will allow us to begin working efficiently to prioritize the features that will enable a great IoT experience with InfluxDB, Telegraf, and Kapacitor. If there are features you’d like to see supported within SurgeMQ for your use case, please open up a GitHub issue and let us know.

Most importantly, this allows us to better support users and customers that are building IoT applications on top of InfluxDB by broadening our stack and expertise. We believe that as we see more usage within the IoT and Industrial Historian markets, we’ll be able provide more complete solutions and make it easier to have an amazing experience with InfluxDB.
We hope this announcement gets you excited to start using MQTT within the InfluxData ecosystem. If you’re interested in contributing or giving us feedback, head on over to the GitHub project!

What’s next?