Skip to content

Releases: apache/bifromq

Apache BifroMQ-v4.0.0-incubating RC3

30 Dec 06:13
6cb2465

Choose a tag to compare

Pre-release

Since the last non-Incubator release (v3.3.5), BifroMQ has received a number of architectural updates, operational improvements, and bug fixes.
Because many internal components were refactored—and due to the required Apache compliance adjustments—this release is not backward-compatible with previous non-Incubator versions. Users should treat 4.0.0-incubating as a major upgrade.

The version number 4.0.0-incubating reflects continuity from the pre-Incubator lineage while marking a new phase under the Apache Incubator.

Major New Features

Independent Workload Cluster (IWC) Deployment Mode

Enables MQTTServer, DistService, InboxService, RetainService, SessionDictService, and APIServer to run as separate workload clusters for improved scaling and resource isolation.

ClientBalancer Plugin

A new plugin that allows integrating custom client-balancing strategies for managing MQTT client connection distribution.

New SPIs and Extension Hook Points

Additional extension points across multiple layers to support advanced customization and deep integration use cases.

New Operational APIs

New APIs for improving observability, operational control, and management capabilities:

  • Cluster landscape inspection
  • RPC traffic governance
  • StoreBalancer management

Improvements in Architecture and Core Capabilities

  • Optimizations in base-cluster and base-crdt for reduced overhead and faster convergence.
  • Refactored base-rpc to support more graceful rebalancing behavior with fewer disruptions during topology changes.
  • Refactored base-kv for improved resilience and greater extensibility.
  • Updated base-scheduler with improved observability and simpler customization of scheduling logic.
  • Optimized internal RPC protocol and storage schemes across DistService, InboxService, and RetainService for better load distribution and more predictable performance.

Apache Compliance Work

  • Updated LICENSE/NOTICE, normalized headers and package paths(org.apache.bifromq), and added DISCLAIMER plus other ASF-required metadata.
  • Adjusted build and distribution scripts to produce fully Apache-compliant source releases.

Apache BifroMQ-v4.0.0-incubating RC2

18 Dec 05:46
878c0fc

Choose a tag to compare

Pre-release

Since the last non-Incubator release (v3.3.5), BifroMQ has received a number of architectural updates, operational improvements, and bug fixes.
Because many internal components were refactored—and due to the required Apache compliance adjustments—this release is not backward-compatible with previous non-Incubator versions. Users should treat 4.0.0-incubating as a major upgrade.

The version number 4.0.0-incubating reflects continuity from the pre-Incubator lineage while marking a new phase under the Apache Incubator.

Major New Features

Independent Workload Cluster (IWC) Deployment Mode

Enables MQTTServer, DistService, InboxService, RetainService, SessionDictService, and APIServer to run as separate workload clusters for improved scaling and resource isolation.

ClientBalancer Plugin

A new plugin that allows integrating custom client-balancing strategies for managing MQTT client connection distribution.

New SPIs and Extension Hook Points

Additional extension points across multiple layers to support advanced customization and deep integration use cases.

New Operational APIs

New APIs for improving observability, operational control, and management capabilities:

  • Cluster landscape inspection
  • RPC traffic governance
  • StoreBalancer management

Improvements in Architecture and Core Capabilities

  • Optimizations in base-cluster and base-crdt for reduced overhead and faster convergence.
  • Refactored base-rpc to support more graceful rebalancing behavior with fewer disruptions during topology changes.
  • Refactored base-kv for improved resilience and greater extensibility.
  • Updated base-scheduler with improved observability and simpler customization of scheduling logic.
  • Optimized internal RPC protocol and storage schemes across DistService, InboxService, and RetainService for better load distribution and more predictable performance.

Apache Compliance Work

  • Updated LICENSE/NOTICE, normalized headers and package paths(org.apache.bifromq), and added DISCLAIMER plus other ASF-required metadata.
  • Adjusted build and distribution scripts to produce fully Apache-compliant source releases.

Apache BifroMQ-v4.0.0-incubating RC1

09 Dec 01:46
67eb2ff

Choose a tag to compare

Pre-release

Since the last non-Incubator release (v3.3.5), BifroMQ has received a number of architectural updates, operational improvements, and bug fixes.
Because many internal components were refactored—and due to the required Apache compliance adjustments—this release is not backward-compatible with previous non-Incubator versions. Users should treat 4.0.0-incubating as a major upgrade.

The version number 4.0.0-incubating reflects continuity from the pre-Incubator lineage while marking a new phase under the Apache Incubator.

Major New Features

Independent Workload Cluster (IWC) Deployment Mode

Enables MQTTServer, DistService, InboxService, RetainService, SessionDictService, and APIServer to run as separate workload clusters for improved scaling and resource isolation.

ClientBalancer Plugin

A new plugin that allows integrating custom client-balancing strategies for managing MQTT client connection distribution.

New SPIs and Extension Hook Points

Additional extension points across multiple layers to support advanced customization and deep integration use cases.

New Operational APIs

New APIs for improving observability, operational control, and management capabilities:

  • Cluster landscape inspection
  • RPC traffic governance
  • StoreBalancer management

Improvements in Architecture and Core Capabilities

  • Optimizations in base-cluster and base-crdt for reduced overhead and faster convergence.
  • Refactored base-rpc to support more graceful rebalancing behavior with fewer disruptions during topology changes.
  • Refactored base-kv for improved resilience and greater extensibility.
  • Updated base-scheduler with improved observability and simpler customization of scheduling logic.
  • Optimized internal RPC protocol and storage schemes across DistService, InboxService, and RetainService for better load distribution and more predictable performance.

Apache Compliance Work

  • Updated LICENSE/NOTICE, normalized headers and package paths(org.apache.bifromq), and added DISCLAIMER plus other ASF-required metadata.
  • Adjusted build and distribution scripts to produce fully Apache-compliant source releases.

BifroMQ-v3.3.5

25 Feb 05:23

Choose a tag to compare

Versions v3.3.5 and earlier are pre-incubator releases

This patch release includes the following changes:

Bug Fixes:

  • Fixed a bug (#112) where a ClassCastException was thrown when a request was made during base-kv client initialization. (#113 by @Gujiawei-Edinburgh)
  • Fixed a concurrency issue that could cause route loss after a subscription (#115, thanks @zbj54 for reporting and verification). (#119 by @Gujiawei-Edinburgh)
  • Fixed a direct memory leak reported in issue #118 (by @popduke).
  • Automatically removed topic filter match records in the dist service for transient sessions when a delivery error occurs due to ServerNotFound. (#120 by @Gujiawei-Edinburgh)

Full Changelog: v3.3.4...v3.3.5

BifroMQ-v3.3.4

20 Dec 06:08

Choose a tag to compare

This patch release includes the following changes:

Improvements:

  • Enhanced usability of the Demo plugin. See details in PR #108 by @Gujiawei-Edinburgh
  • Added support for server-assigned client identifiers for both MQTT 3 and MQTT 5 protocols. @popduke

Bug Fixes:

  • Fixed the handling of MQTT 5 connections with empty client identifiers. @popduke
  • Removed unnecessary fields in MQTT 5 Disconnect packets to align with the MQTT5 Spec. See details in PR #107. by @Gujiawei-Edinburgh

Others:

Full Changelog: v3.3.3...v3.3.4

BifroMQ-v3.3.3

30 Oct 08:42

Choose a tag to compare

This patch release includes the following changes:

Improvements:

  • Optimized the subscription cache population mechanism to reduce processing time during burst workloads.
  • Enhanced the subscription cache invalidation mechanism, ensuring concurrent subscription changes take effect promptly.

Bug Fixes:

  • Corrected reported event types for dropped QoS1/2 messages when the MQTT5 NO_LOCAL flag is explicitly set.

Other Changes:

  • Updated maven-archetype-plugin to address a security vulnerability.

Full Changelog: v3.3.2…v3.3.3

BifroMQ-v3.3.2

26 Sep 10:06

Choose a tag to compare

This patch release includes the following changes:

Improvements:

  • Added support for storing retained messages of a single tenant across multiple ranges.
  • Implemented message dropping for overflowed messages when a channel becomes unwritable due to a slow subscriber, preventing OOM.

Bug Fixes:

  • Fixed an issue where retain requests could be dropped during the batching phase.
  • Resolved a bug that caused the route cache to become out of sync when sub/unsub operations were performed concurrently.

Other Changes:

  • Upgraded protobuf-java to version 3.25.5 to address its security vulnerability.

Full Changelog: v3.3.1...v3.3.2

BifroMQ-v3.3.1

14 Sep 13:18

Choose a tag to compare

This patch release includes the following changes:

New Features:

  • Support for self-signed certificates for MQTT over TLS and WSS for non-production purposes.

Improvements:

  • Removed the legacy approach for determining local bindable address in the startup script, which helps avoid confusion in environments with multiple NICs.
  • Improved the route cache invalidation mechanism to reduce the impact of adding or removing wildcard topic filters.

Bug Fixes:

  • Fixed a memory leak issue when building an RPC pipeline or stream to an unreachable server.

Others:

  • Improved the stability of integration tests.

Full Changelog: v3.3.0...v3.3.1

BifroMQ-v3.3.0

26 Aug 08:27

Choose a tag to compare

This minor release includes the following changes:

Due to optimizations made to the storage engine in this release, the replace method is required for rolling upgrades. Please refer to the online documentation for detailed instructions.

New Features:

  • Introduced a new built-in StoreBalancer (UnreachableReplicaRemovalBalancer) for automatically removing unreachable replicas.
  • Added a new built-in StoreBalancer (RangeBootstrapBalancer) for cluster initialization, which can serve as an alternative to the bootstrap configuration option, relaxing the requirement for a unique 'bootstrapping' node.
  • Implemented an auto-detection and cleanup strategy for "zombie-state" KVRange replicas in base-kv.

Improvements:

  • Refactored base-kv to support a multi-RocksDB instance architecture, improving performance across multiple shards (KVRange).
  • Enhanced the efficiency of internal management processes in base-kv, reducing contention during concurrent executions.
  • Optimized the snapshot installation process to increase the success rate.
  • Improved the mechanism for KVRange graceful exit from the cluster.

Bug Fixes:

  • Resolved issue #98: SessionInfo lost updates when self-kicking.
  • Fixed an issue where Checkpoints were not cleaned up promptly after their owner RocksDBCPableKVSpace was destroyed.

Others:

  • Deprecated the built-in RecoveryBalancer, which could potentially cause data inconsistency.
  • Implemented a workaround(8580fd8) for an unresolved issue in OpenJDK17 that may occur sporadically.
  • Upgraded major dependency versions: grpc, netty, rocksdb, etc.

Full Changelog: v3.2.2...v3.3.0

BifroMQ-v3.2.2

08 Aug 09:28

Choose a tag to compare

This patch release includes the following changes:

Improvements:

  • Restructured basekv-related log files and the metrics of executors used within basekv to simplify diagnostic work.
  • Implemented separate executors for ticking tasks in each basekv-based store to reduce interference under heavy load.
  • Reduced read-write contention to enhance the efficiency of collecting basekv-related metrics.

Bug Fixes:

  • Explicitly close KV iterators after use to prevent potential RocksDB crashes.(2657a5e)
  • Fixed a thread starvation issue that could occur during highly concurrent publish and subscribe operations.(df63f83)
  • Fixed a potential ConcurrentModificationException that could be thrown when resetting InboxStoreCoProc after splitting.(b915fb7)
  • Prevented already sent confirmable messages from being added to the staging buffer in persistent sessions, which previously caused a steady increase in session memory usage.(cca3e55)

Full Changelog: GitHub Compare v3.2.1...v3.2.2