LoveLight USA Perfects the Art of Connection with HiveMQ
Written by John L. Singleton
Published: June 7, 2021
Here at LoveLight USA we build carefully crafted internet-connected lights that allow our customers to stay connected with friends and loved ones around the world. The basic concept is appealing and intuitive: Two or more LoveLights can be linked together. When you tap one LoveLight, each LoveLight that is linked to the selected light illuminates briefly to let the connected person know that they are currently in your thoughts. You can take the devices and give them to the people you care about to stay in touch anywhere, anytime. It’s a wonderful idea. Of course, whenever you’re not near the light, you wouldn’t see it light up. That’s why we decided to take the idea one step further by integrating a mobile app. With the mobile app, no matter what your proximity is to your light, you can still get the message that someone you know is thinking of you.
MQTT: the Right IoT Protocol for Mobile App Connectivity
The hardware we designed for LoveLight runs on very small microcontrollers. Due to the low processing power, finding an extremely lightweight bi-directional messaging protocol to accommodate all the back-and-forth messages between our devices was an absolute must. MQTT was the answer. First of all, MQTT allowed us to implement a custom-made synchronized protocol on very limited computing hardware. Secondly, the event-based nature of MQTT and the low-overhead in terms of what goes over the wire meant that we could actually integrate MQTT into our mobile app. Using MQTT to push information from our devices rather than continuously polling a server with an HTTP-based solution is a great fit for our use case. Overall, the robustness and expressiveness of the MQTT protocol are impressive. MQTT enables us to use lower-powered hardware and still get all the animation, message-delivery guarantees, and key features we need to design solutions that function appropriately.
HiveMQ: the Best MQTT Broker to Keep Our Customers Connected
Once we decided on MQTT, the journey to find the best MQTT broker began. Our analysis started with the Mosquito MQTT broker from Eclipse. This familiar open-source broker has been around for quite a while and is quite OK for developing proof of concepts. However, the fact that Mosquito runs on a single thread, lacks management features, and doesn’t cluster makes it unsuitable for production deployments. We were looking for something that offered a more complete feature set and the ability to scale up as needed.
We also analyzed the VerneMQ and EMQ brokers. VerneMQ is written in the Erlang programming language, and although I have written and used Erlang systems before, it is not my preference. Java systems are simply much easier to roll out, deploy, and manage. Billions of devices run Java around the world with all the associated Java infrastructure tools and support. Developers usually know how to manage Java apps without any special training. Managing an Erlang stack would introduce too much uncertainty. As for EMQ, the concerns centered largely around security and doubts about the credibility of the available benchmarking. Essentially, we felt more comfortable sticking with US and EU-based solutions.
As to the IoT services providers such as AWS (Amazon Web Services) or Particle offer, the main issues boil down to control and cost. For us, the level of complexity we would need to add to our deployment was a big concern. With this sort of IoT service, there is a lot of interactivity (particularly from a cost standpoint). As you scale up, the hourly charges for incidentals and traffic accumulate. In the end, your service can become prohibitively expensive. Another difficulty is the lack of control. The whole thing is a big black box. If something goes wrong in the cloud, you write a ticket and hope that someone gets back to you. You don’t even have control over your security certificates.
In the end, our analysis brought us to HiveMQ. Personally, I like to use boring technology. We have devices running in the US, Europe, Asia, Israel, really all over the world. When I monitor the client data from HiveMQ or do load testing, it’s amazing how rock-solid the performance is. Our experience with HiveMQ is totally uneventful and boring in the best possible way. There are no surprises. Clients connect and our message throughput is excellent. It is all super fast and lightweight. We get first-rate results operating on very minimal hardware. At the end of the day, I have no worries about my ability to scale up. HiveMQ gives us a top-notch enterprise-ready broker that provides a lot of well-thought-out features that you don’t find elsewhere. For example, MQTT over WebSockets and an excellent enterprise security extension. LoveLight production is unusual in that even our circuit boards are carefully designed and handcrafted. Our idea is to make an amazing product that is full of great technology and materials. HiveMQ fits well with our philosophy of quality and attention to detail.