EMQ Sponsors Open Source Summit Europe 2024 | Register Now →

A Peek at EMQX 5: The Most Scalable MQTT Broker is Almost There

May 20, 2022
A Peek at EMQX 5: The Most Scalable MQTT Broker is Almost There

We are excited to announce that EMQX 5.0.0-rc2 has been released! Entering the RC stage means the implementation of EMQX 5.0 core features have stabilized and marks one step closer to the final release!

Welcome to take EMQX 5.0.0-rc2 for a spin!

You may download the latest release from Github:

Or from EMQ website:

In the post below, we’ll spotlight some of the recent features we've released through the Dashboard UI.

Notably new in this RC are:

  • Clear view of monitoring
  • Rules engine and data bridging
  • Configuring Authentication and Authorization from the Dashboard
  • Online configuration updates

Clear view of monitoring

With more accurate monitoring metrics and alerting mechanisms potential issues in the EMQX cluster can be detected even earlier than before. This allows measures to be quickly taken to resolve emergent issues, thereby ensuring product stability and improving user experience.

Real-time status of insights

The version 5 Dashboard displays more monitoring data than previous versions, allowing the user to easily view the real-time client connections, message inflow and outflow rates, and determine the status of all nodes in the cluster at a glance through the node topology.

MQTT Dashboard

Historical Data

All built-in metrics data is persisted for 7 days. Selecting different spans of time while viewing metrics allows the user to visually trace back the business growth trends, and prevent missing any data fluctuations. Please note that the displayed metrics are a subset of all metrics that are generated by EMQX.

If the user intends to use customized monitoring or alarm configurations, the Prometheus and StatsD systems can be integrated in the interface with a single mouse click. In this case all metrics, not just the ones displayed on the Dashboard, are exposed. This allows for much finer grained control over the metrics data including historical data retention.

MQTT Dashboard Overview

Prometheus and StatsD

Configuring Authentication and Authorization from the Dashboard

Authentication and authorization are the core security features in MQTT. In version 5, these features of EMQX have been redesigned to provide ease of use and a clear process flow.

Simpler security configuration

In version 5 the authentication and authorization features can be configured not just from config files, but also from the Dashboard UI. It is now as simple as selecting the authentication method on the page, choosing the preferred data source, and filling in the parameters to enable connection authentication and access control for all nodes. This combines ease of use with providing the highest security for the clients. If the user needs to complete the configuration before the cluster starts, the configuration file can be used.

If the user chooses to use the built-in database, the authentication data can be added and managed on the UI. Everything is done at your fingertips.

View runtime statistics

Runtime statistics are provided for each authentication and access control to ensure that the user does not miss a single failed request. With the current speed indicator, the user gains more insights in the load on the authentication backend services.

iew runtime statistics

Adjusting the order of the authentication/authorization methods

When the user enables multiple authentication configurations (which is not recommended, but there are scenarios where this feature is needed for practical reasons), EMQX performs authentication operations in the order of the configurations, from top to bottom. The user can adjust the order of execution by either dragging and dropping or using the buttons to adjust the priority up and down, ensuring that business requirements are met.


Rule engine and data bridging

The previously scattered Webhook, bridge plug-ins, and MQTT consumer groups are integrated into a unified process for ease of configuration and use.

Visualized rules configuration

When creating or editing the IoT Rules two modes are available, an ‘expert’ mode where rules are written by hand and a ‘simple’ mode where there are helpers such as default templates to assist in the creation of said rules. This allows users who are not familiar with SQL rules to quickly complete basic rules configuration. Multiple default templates have been provided to assist in quickly exploring complex data, and they can be substituted with a single click.

In the screenshot on the right hand side below the ‘expert' mode is on the left and the ‘simple’ mode is on the right.

IoT rule engine 1

IoT rule engine 2

Bidirectional data flow

Previously, the Rule Engine only supported sending messages from EMQX to external integrations (Sink). If the user wanted to ingest from external integrations (Source), a bridge plug-in such as MQTT Bridge could have been used, however, no IoT rules could have been applied on the ingested messages.

In version 5, bidirectional data flow allows the users to freely bridge messages between a remote MQTT broker and EMQX, and extract, filter, enrich, and transform the data in real-time using the IoT rules.

Bidirectional data flow

Visualized data flow

A visual panel is provided on the Flow Chart page, where the user can view the data flow relationship of all IoT rules and the Data Bridge. The carefully choreographed process of “data coming from a device into an MQTT topic, being processed by an IoT rule, and finally, being sent to a web service or database” will be perfectly displayed on the page.

In future releases, the Flow Chart panel will be further improved, wherein the user can freely arrange the data integration logic by drag-and-drop and linking.

Visualized data flow

Installing and using plug-ins like managing Chrome extensions

Version 5 allows plug-ins to be compiled, distributed and installed as independent packages. When a user needs a plug-in they would search for it, download it to the local machine, upload it from the Dashboard UI, and install it without having to restart EMQX.

A standard plug-in should come with the instructions and address of the plug-in’s homepage, allowing the general users to follow the instructions and quickly get started, and the plug-in developers’ work to be viewed by more users.

You may download an example package for testing from this repo: or use the same repo as a development reference to build your own plugins.

EMQX Installing plug-ins

EMQX plug-ins

Online configuration updates

Prior to version 5, online config updates are only provided in EMQX Enterprise edition.

In version 5, online config update feature is provided in the community edition. This allows the configurations to be hot updated across the cluster in one go.

In version 5 the configuration file format has been changed, and the configuration keys and paths are also optimized to provide the users with a better experience. This includes easier-to-understand configuration names, more logical configuration structures, and unified configuration specifications.

The screenshot below is to demo online config change for log handlers and levels etc.

EMQX config

Better performance with brand-new EMQX 5

All these features of EMQX v5.0 that we mentioned above can be viewed through the Dashboard. EMQX 5 will also include MQTT Over QUIC, Mira database, session persistence based on RocksDB, and more. We will introduce them in our future posts. Stay tuned.

If you are interested in trying out EMQX v5.0 for yourself, please download from here:

If you’re looking to take your IoT solutions to the next level, let’s set up a time to discuss our enterprise-grade expert support:

As always, please let us know of any issues.

Try EMQX Enterprise for Free
Get Started →

Related Posts

Dec 11, 2020Guowei Li
EMQX Enterprise 4.2.2 is now available!

EMQX enterprise 4.2.2 improves the usability of the LwM2M protocol. The rules engine can choose synchronous/asynchronous method to store data. Some resources provide batch enable switches.