VerneMQ 1.9.0 release highlights

The 1.9.0 release brings some interesting improvements as well as a bunch of bug fixes and new features.

Performance improvements

One of the most exciting aspects of the 1.9.0 VerneMQ release is the optimizations done in the built-in message-store driver. Faster writes, much faster initialization during a broker restart and much support for very large offline queues (with millions of messages). See this blog post for the details. Important to note is that these changes are incompatible with earlier VerneMQ releases, so downgrading to 1.8.0 requires starting from a clean message store.

New features

In the webhooks plugin (vmq_webhooks) it is now possible to omit the payload for the auth_on_publish hook if it isn't required at the endpoint. If the payloads are large this feature saves bandwidth and decreases the resources used at the webhook endpoint which can improve performance considerably. The LUA plugin (vmq_diversity) now exposes the hashing primitives implemented by the Erlang runtime system, so it is now possible to use hash functions such as sha256, sha512 and others. It is now possible to override the MQTT username in a plugin using the username modifier in the authentication hooks.


The release contains a lot of bug fixes. The list is long, but to mention a few: vernemq version now correctly outputs the version instead of an empty string, LUA scripts are now properly restarted if they should crash, the VerneMQ bridge plugin now handles topic prefixes and retained flags correctly.

Upgrade dependencies and refactorings

Internally we've migrated cowboy from the 1.x series to version 2.6.3. cowboy powers the MQTT websockets as well as the HTTP API and status pages. We've also made the necessary changes to make VerneMQ build and work on Erlang OTP 22.

Thanks to our customers and the community for giving us precious feedback, opening issues and contributing pull requests!

The VerneMQ Team