In this post we'd like to highlight some of the new features and improvements we implemented in VerneMQ 1.7 which we released last week.
We now ship the vmq_swc
(Server-Wide Clocks) metadata plugin with VerneMQ by default. vmq_swc
is the next generation metadata replication and will eventually be the default and replace the Plumtree vmq_plumtree
replication mechanism. To use Server-Wide Clocks instead of Plumtree set metadata_plugin = vmq_swc
in vernemq.conf
. The Server-Wide Clocks metadata plugin is still in Beta. To read more about the new replication method and the rationale behind it (performance and distributed deletes) see Taking VerneMQ replication to the next level.
It is now possible to inspect the retained message store in VerneMQ by using the new vmq-admin retain show
command. Being able to inspect the retained messages has been an often requested feature, so we're happy to finally provide it.
To make it easier to know the state of the VerneMQ cluster a dedicated HTTP health-check endpoint was added under /health
which returns 200 when VerneMQ is accepting connections and joined the cluster (for clustered setups) or returns 503 in case any of the two conditions are not met.
On the developer API side it is now possible to reauthorize existing client subscriptions by reapplying current auth_on_subscribe
and auth_on_subscribe_m5
hooks. This feature is exposed as a developer API in vernemq_dev
and in the command line via the vmq-admin session reauthorize
CLI command.
On the operations side we have reimplemented offline queue migrations during planned cluster leave and is now much faster. Migrating offline queues away from the leaving node is important to ensure that message for offline clients are available when the client establishes a new session the cluster.
Besides the above mentioned features the 1.7.0 release contains lots and lots of other improvements and bug fixes. See the changelog for more information.
Thanks to our customers and the community for giving us precious feedback, opening issues and contributing pull requests!
The VerneMQ Team