One of the questions I get asked the most is:
Why should anyone buy Connhex, given the countless open-source alternatives that exist?
This article tries to shine a light on it.
There are no open-source alternatives to Connhex
If you think otherwise, we failed at properly describing what Connhex is.
There are many open-source IoT platforms: their functionalities, though, are just a small subset of Connhex’s.
Let’s suppose you are a device manufacturer and want to provide a service to your customers (via some kind of app). You can base your solution on an open-source IoT platform as long as you:
- develop a complete IAM system. IoT platforms give you a general users and roles management, but you still need to integrate it with your apps. And none of those we tried was powerful enough to cover actual use-cases (OEM manufacturers, multiple business lines inside the same company, multiple teams), so be prepared to roll out your own IAM
- implement backup and restore functionalities
- manage certificates properly. They should be on a per-device basis and you should support intermediate certificates. You should be able to blacklist a single device and support multiple client libraries. If you’ve ever had to deal with certificates, we feel you.
- integrate a payments system with the device management. How do you automatically enable certain functionalities based on the pricing plan the device/user is? How do you handle pay-per-use models?
- develop a message mapping mechanism: rest assured that, no matter how much thought you put in developing a message format standard for your devices, exceptions will occur. And it better be performant, since these transformations will be applied to every incoming message
- integrate observability and monitoring: you need to understand at any given moment the infrastructure’s health state, and to be notified of upcoming issues
- can manage production clusters, and keep up with security fixes and updates
- think about handling many other things (supporting multiple authentication factors, developing historicization, multiple notification methods, data analysis and background exports, …)
I could go on and on, but I’m sure you get the idea. If you are a connected device manufacturer,
once you choose an open-source IoT platform, you still have a long way to go before having a production-ready solution.
A viable alternative to Connhex would be subscribing to a SaaS product. While this is a great way to get started, since you probably won’t need to build many of the aforementioned features, you should keep in mind:
- as soon as you start scaling the number of devices 1, this becomes economically inconvenient. You might then be exploring self-hosted solutions, but the monitoring and production-instance management problems you got out of the door would come back through the window
- you are locking yourself to that provider for what might become an essential part of your business. And, by the way, you are also giving up control over the collected data.
- the customization capabilities are lower by definition.
Connhex is positioned in the middle between these two options.
Open-source is great for infrastructure
The best way to develop foundational software is by open-sourcing it.
What do I mean by foundational? Infrastructure, libraries, middleware, protocols, frameworks. Everything that is intended as a piece upon which you can build many different things.
One of the best examples of this is Linux: the OS that powers the vast majority of the internet is open-source.
That’s why it makes sense to develop an open-source IoT platform: it’s infrastructure. So why don’t we open source Connhex’s equivalent module?
Why don’t you open-source Connhex Core?
Connhex obviously needs a data ingestion and storage infrastructure - Connhex Core.
Three main factors influenced our decision of not open-sourcing it (yet):
- we will never open-source something if we can’t do it properly. The section below contains a deeper reflection.
- Connhex Core’s performances benchmark way higher than any of the open-source alternatives we have tried so far. We spent a lot of time fine-tuning every component in the ingestion chain for our use case, and our customers are telling us this is a competitive advantage. We are not comfortable giving this up, yet.
- we have been able to tune Connhex Core precisely for our use case, and this comes with tradeoffs. An example? We want to be able to retrieve data as quickly as possible: this has an impact on how we write and store it. The natural tendency of an open-source project is to support as many use cases as possible: you see this phenomenon in IoT platforms, that are usually compatible with a plethora of databases. Doing that would mean worsening our product.
We have been able to build Connhex with such a small team only thanks to open-source. We want to be able to give something back, but need to do so responsibly.
Our plan for giving back
We strongly feel that open-sourcing a project does not equate to “upload your source code”.
Creating an open-source project means at least:
- stepping up your documentation
- supporting the community that will be using it
- keeping as much compatibility as possible between releases
We are a small team and need to prioritize carefully where we put our resources. Right now, we are focusing 100% on making the best product we can and doing everything in our power to help our customers achieve their goals through Connhex.
We think the responsible thing for us to do is to give back only once we can do it properly. We intend to:
- keep sharing our learnings from this blog. While this isn’t code, we find it valuable and try to dedicate as much time as possible to it
- extract functionalities from Connhex to create libraries - and open-source those.
If you decide to use an open-source IoT platform to build your solution, that’s great: if you can, remember to consider donating to the project you’ll be using. Making an open-source based product is hard: we couldn’t wrap our heads around it, so let’s all remember to celebrate the ones who tried.
- A common theme is how many devices are the breakeven threshold for Connhex with respect to a SaaS solution. It really depends: you are talking hundreds to thousands, though. That’s why Connhex is such a winning proposition for small device manufacturers: they don’t need to sell millions of devices to reach breakeven.↩