01
Performance
Work that lifts broker throughput, so applications run smoothly and messages move without unnecessary delay.
- Brought Virtual Thread support, the most exciting feature in modern Java, to ActiveMQ. Up to a 93% topic throughput improvement.
- Reduced contention and locking. Virtual Threads provide the framework for applying modern Java best practices, and further optimizations push ActiveMQ throughput even higher.
02
New feature development
New capabilities that give operators more insight and more control over a running broker, built to be opt-in so existing deployments are unaffected.
- Contributed the majority of the Jakarta 3.1 and JMS 2.0 features in ActiveMQ.
- Added one-time-use queues, which address the head-of-line blocking problem and open new use cases without sacrificing performance or requiring special client-side handling.
- Added support for per-transport-connector and per-network-connector SSL certificates.
- Added batch purging of queues, which helps when a queue holds millions of messages on IO-limited disk volumes and during development cycles.
03
Security and access control
Direct contributions to the broker's authorization behavior and to the project's own security posture.
- Added advanced authorization of client connections, with hardening of the accounts allowed to register cluster network connections.
- Fixed an authorization check applied when a destination is removed.
- Made SSL detection in the dual-authentication broker overridable, so teams can extend authentication for their own environments.
- Consolidated the username, password, and group store across the broker and web console.
04
Reliability and correctness
The unglamorous fixes that keep a broker dependable in production and make failures easier to diagnose.
- Hardened network connector connections so they recover on their own in flaky networks.
- Preserved stack traces when a file move fails, so the root cause is no longer lost, with particular attention to Windows behavior.
- Added a null guard during KahaDB checkpointing when the store is logging at TRACE level.
- Strengthened automated test coverage, including dead-letter-queue scenarios, and stabilized flaky tests.
05
Observability
Sifting through logs to troubleshoot is slow. Surfacing metrics reduces administrative overhead and makes automation possible.
- Exposed critical internal KahaDB throughput metrics.
- Added error and reconnect metrics to network connectors.
- Surfaced internal connection and connector metrics.
- Surfaced internal destination metrics.
- Added visibility into client-side metadata per connection.
- Added advanced per-destination message statistics that surface message age and flow activity, including the most recent and first enqueue and dequeue events, enabled per policy.
- Added advanced per-destination network statistics that surface enqueue and dequeue counts processed across a network of brokers, enabled per policy.
06
Multitenancy
Contributions that keep one tenant's workload from disrupting others, which matters for shared and cloud deployments.
- Added a configurable limit on uncommitted messages in a transaction, which reduces the noisy-neighbor problem.
- Added client-side maximum message size checking, which stops a misbehaving client from sending oversized messages that can affect other tenants or hit cloud IOPS limits.
07
Modernization
Sustained work to shrink the third-party footprint and keep the codebase current, which reduces the surface operators and security teams have to track. Removing unnecessary dependencies also cuts noise in security reports.
- Migrated to Jetty 12.
- Added H2 database support to the JDBC persistence layer, a modern, lightweight embedded option.
- Removed outdated and unused dependencies, including commons-lang3, Velocity, JoSQL, the commons-daemon launcher, and the deprecated Axion JDBC adapter.
- Replaced a third-party IO library with native Java NIO in the JAAS security module.
- Migrated the client module to a multi-release jar and retired pre-6.0 Spring schema namespaces.
08
Collaboration and build health
Working alongside the wider community and helping keep the project's build and test infrastructure current.
- Helped define the project's security threat model.
- Maintained the project's published security reporting policy.
- Provides ongoing security stewardship: responding to reported issues, shipping fixes, and coordinating CVE disclosure so users can patch with confidence.
- Took part in reviewing and integrating contributions from other community members.
- Removed outdated and unused code.
- Helped keep continuous integration current with new Java releases, moving the build forward to JDK 23 and then JDK 25.
- Improved build and test infrastructure, including parallel test execution, runner configuration, and compiler-warning cleanup.