Hot like the summer, EMQX is on fire - EMQX Newsletter 202108
In August, the open source team continually focused on EMQX 5.0 feature developments. A lot of heat in discussions, a lot of fast iterations. EMQX 5.0 has reached alpha.5 release. And we expect the first beta release to come soon.
A quick glance at EMQX 5.0 management UI
EMQX 5.0 will come with a freshly redesigned management UI. The new design focuses a lot on user experience improvements, we try our best to strike a balance between the clarity of the UI and the ability to parameterize.
To show off, here is a screenshot of the new UI for advanced MQTT features.
Managing Topic Rewrite, Auto Subscribes, Delayed Publish, and Event Messages will be a breeze experience with the new UI.
Reconfigure EMQX on the fly
As we showed in the previous newsletter, EMQX 5.0 uses Open API 3.0 for management APIs. If you visit https://:localhost:18083/api-docs, the browser will take you to the Swagger UI where you can try out API calls directly from the GUI as well as viewing the detailed documentation of the API.
The new stuff we added in August is the framework that will allow EMQX users to reconfigure the cluster on the fly. For the majority of the config changes, there will be no need to restart the broker to make config changes take effect.
Cluster Call for Consistent Configuration
We just introduced on-the-fly configuration update and reloading, you may wonder how we ensure the changes are applied across all nodes in a cluster. This is why we have implemented the “Cluster Call” feature.
Previously we have been using Erlang’s multi-call in EMQX to replicate changes to all nodes in the cluster, which is straightforward to use and mostly working just fine in most of the network scenarios. However, there has been a lack of a nice rollback or failure handling.
The “Cluster Call” feature allows us to replicate the change in an async fashion, which will eventually get the same changes applied on all nodes in the cluster.
Configuration Document Generation
In EMQX 5.0, source code will become the single source of truth for API and configuration documentation. With the help of HOCON schema feature, keeping code and documentation in sync will be effortless. Below is an example of listener config documentation.
Here in the picture is a screenshot of the generated configuration document for the QUIC listener --- Yes, in case you have missed our previous updates, EMQX now has a PoC implementation of MQTT over QUIC.
RLog is now named Mria
We have previously named the async Mnesia database replication project RLog (as in Replicated Mnesia transaction log), and it was implemented as a part of the ekka library.
We believe this project will benefit the Erlang/Elixir community, so we have decided to move it out to its own repo: mria.
The project ‘mria’ is named after the biggest aircraft in the world AN-225 “MRIA”, and it also shares the same ‘-ia’ suffix as its origin: Mnesia