IoT projects can often be large in scope - commonly extending to millions of devices - however the projects often start with a handful of devices and grow over time. These devices need a connectivity infrastructure that allows them to communicate across links that are often unreliable and low bandwidth and a common protocol to provide this communication is the MQTT open standard.
Managing and scaling a messaging system that needs to cope with such a broad range of project size places strict requirements on the messaging infrastructure - not only must it efficiently scale horizontally and vertically, it must make it easy to manage e.g. permissions for large numbers of devices and monitor - to find anomalous devices hiding amongst many correctly functioning devices. At the same time, because IoT projects start small and then rapidly scale it requires a messaging infrastructure that is not unwieldy for small deployments and easy to get up and running.
Eclipse Amlen provides a robust, highly-available messaging broker that is easy to setup and use but can be scaled to meet the demands of large IoT (and mobile/web) projects involving large numbers of clients.
Aside from the broker itself, ancillary components such as graphical user interfaces for managing the broker, bridges to other messaging systems, performance harnesses, test programs and messaging proxies are all in scope.
The main component of Amlen is the server - a message broker that supports the latest MQTT v5 protocol designed for IoT (as well as the older MQTTv3 and JMS 1.1). It can be deployed in highly available, redundant configurations and has clustering support for horizontal scalability.
Aside from the server, it provides:
1) An easy to use WebUI that makes managing and monitoring the message broker easier
2) Bridging capabilities to other messaging systems (currently bidirectionally to other MQTT servers and IBM MQ Queue managers) and unidirectionally to Apache Kafka.
The following architecture diagram shows how the code is arranged:
Eclipse is the natural place for Amlen - it already is home to:
1) Eclipse Paho - a suite of MQTT clients used to connect to MQTT servers like Amlen
2) Eclipse Mosquitto - A light-weight MQTT server that as well as being a standalone message broker, can be used as a concentrator providing store-and-forward capabilities between the IoT devices and an Amlen Message Broker infrastructure.
The current targeted timeline is an initial contribution approximately May 2021, with usable/deployable builds in July 2021
The key future work needs to be community building - broadening the contributor base to more organisations and backgrounds. This means user focussed tutorials, help on mailing lists, and "office hours". It also means developer focussed materials like overviews of the architecture as well as more focussed information such as "How to add support for a new protocol to the broker".
Aside from community building, the key near-term technical improvement is easier deployments in cloud environments and in particular Kubernetes. Message Gateway (the forerunner of Amlen) is currently deployed in production in many Kubernetes clusters, but a Kubernetes operator will make it much easier to deploy and scale in a kubernetes cluster.