← Back to all sparks
V

VerneMQ

COMMS
Velocity2.5

Distributed MQTT message broker

VerneMQ follows its year-in-the-making 2.2.0 with a quick round of subscription fixes.

mqttmessage-brokerclusteringshared-subscriptionserlang
◆Current state
VerneMQ releases infrequently; 2.2.0 on August 9 gathered about a year of cluster and connection work, including a socket-counting fix under rapid reconnects and faster inter-node readiness checks. 2.2.1 on October 16 followed with fixes for stale shared subscriptions after trie restarts, enforcement of non-zero message ids, and new webhook connect options.
◆Where it's heading
Two months between 2.2.0 and 2.2.1 is quick for this project, which suggests 2.2 is getting active maintenance. The work stays inside the broker: subscriptions, clustering and protocol correctness rather than new features.
◆Prediction
Further 2.2.x patches are more likely than a new minor; the feed gives no sign of 2.3 work.

◆Recent moves

  1. 17d ago

    VerneMQ 2.2.1

    Fixes stale shared subscriptions after trie restarts, enforces non-zero message ids, adds webhook connect options that undo a Hackney latency regression, and supports remote syslog. A broad maintenance release with spec and performance fixes.

    View source ↗
  2. 2mo ago

    Socket-count fix, WS(S) anonymous override, faster cluster readiness

    The year's substantive release: connection-counter correctness under rapid client churn, v5 property handling fixed in the Lua auth path, SWC event subscriptions mirrored in ETS for reload, parallel inter-node readiness checks, and anonymous-override support on WS/WSS listeners. Two defaults flip as well, retain-expiry checking and SWC initial sync both off.

    View source ↗
  3. 6mo ago

    Testing candidate later folded into 2.2.0

    A testing candidate whose PR list is a prefix of what eventually shipped as 2.2.0 — the release was renumbered rather than completed as 2.1.3. Nothing here reached general availability under this version.

    View source ↗
  4. 7mo ago

    SUBACK error-path fix and routing-table memory reduction

    SUBACKs are now sent on all error clauses in the session state machine, WebSocket connections are counted correctly in active-connection metrics, and X-Forwarded-For handling was tightened. The routing trie moved off gen_server2 for better memory behaviour — the same instrumentation-and-churn theme 2.2.0 continues.

    View source ↗
  5. 1y ago

    Syslog boot fix and an HTTPS config regression from 2.1.0

    Fixes syslog boot with a new log.syslog.level setting, stops adding local MQTT and WS default listeners, and corrects an HTTPS config type regression introduced in 2.1.0. Mostly cleanup after the previous minor, with one genuinely new configuration knob.

    View source ↗
  6. 1y ago

    Breaking on-disk metadata format change

    The minor that carries a breaking on-disk format change — metadata state from earlier releases cannot be read, so upgrades are a migration rather than a restart. It also adds an experimental initial-sync round for empty joining nodes, the cluster-membership work that 2.2.0 later builds on.

    View source ↗