Releases: apache/bifromq
Apache BifroMQ-v4.0.0-incubating RC3
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-clusterandbase-crdtfor reduced overhead and faster convergence. - Refactored
base-rpcto support more graceful rebalancing behavior with fewer disruptions during topology changes. - Refactored
base-kvfor improved resilience and greater extensibility. - Updated
base-schedulerwith 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
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-clusterandbase-crdtfor reduced overhead and faster convergence. - Refactored
base-rpcto support more graceful rebalancing behavior with fewer disruptions during topology changes. - Refactored
base-kvfor improved resilience and greater extensibility. - Updated
base-schedulerwith 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
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-clusterandbase-crdtfor reduced overhead and faster convergence. - Refactored
base-rpcto support more graceful rebalancing behavior with fewer disruptions during topology changes. - Refactored
base-kvfor improved resilience and greater extensibility. - Updated
base-schedulerwith 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
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
ClassCastExceptionwas 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
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:
- Updated issue templates with new guidelines for better user support by @Gujiawei-Edinburgh.
Full Changelog: v3.3.3...v3.3.4
BifroMQ-v3.3.3
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
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-javato version 3.25.5 to address its security vulnerability.
Full Changelog: v3.3.1...v3.3.2
BifroMQ-v3.3.1
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
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
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
ConcurrentModificationExceptionthat could be thrown when resettingInboxStoreCoProcafter 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