Artemis' Roadmap to ActiveMQ Next

The goal of this page is to identify the outstanding issues that must be addressed by Artemis in order to achieve feature parity with ActiveMQ. This page does not list the features which Artemis has beyond what currently exists in ActiveMQ.

Features/Scenarios

This section should be used to compare what features from ActiveMQ have been implemented in Artemis. Feature items can be listed, with links to JIRA tickets for longer conversation and hashing out specific feature details. This will help us to more clearly track everything that Artemis needs. This list of features was taken from the ActiveMQ features page.

Keep in mind that not every feature must have a ✅. Artemis is not meant to be a 100% complete reimplementation of ActiveMQ. Features should only be reimplemented where it makes good sense.

Protocol Support

Feature Artemis Support Version(s)
OpenWire ✅  
Stomp ✅ 1.0, 1.1, 1.2
AMQP ✅ 1.0
MQTT ✅ 3.1
REST ✅  

General

Feature Artemis Support JIRA Notes
Broker Camel Component ✅   example
Discovery ✅   UDP multicast & JGroups
Enterprise Integration Patterns ✅   see “Broker Camel Component”
Horizontal Scaling ✅   supported via clustering or federation
JMSXUserID ✅   documentation
JMX ✅   documentation
Logging a warning if you forget to start a connection ❌    
MDC Logging ❌    
Scaling the depth of a queue ✅   documentation
URI Protocols ✅   vm, tcp, udp, jgroups
Proxy Connector ❌    
Unix Shell Script ✅    

Clustering

Feature Artemis Support JIRA Notes
Master-slave ✅   using JDBC, shared filesystem, & replication; documentation
Network of brokers ✅ ARTEMIS-2265 equivalent through clustering or federation
Replicated message store ✅   equivalent via replication HA config

Consumer Features

Feature Artemis Support JIRA Notes
Consumer Dispatch Async ✅   equivalent via the directDeliver URL parameter
Consumer Priority ✅ ARTEMIS-196 documentation
Exclusive Consumer ✅ ARTEMIS-853 documentation
Manage Durable Subscribers ✅   equivalent via the expiry-delay address setting
Message Groups ✅   documentation
Redelivery Policy ✅   documentation
Retroactive Consumer ✅ ARTEMIS-2504 documentation coming in 2.11
Selectors ✅   documentation
Slow Consumer Handling ✅   documentation
Subscription Recovery Policy ✅   see retroactive addresses

Destination Features

Feature Artemis Support JIRA Notes
Composite Destinations ✅   supported for OpenWire clients; see also diverts
Configure Startup Destinations ✅    
Delete Inactive Destinations ✅    
Destination Options ✅    
Mirrored Queues ❌   rough equivalent via non-exclusive diverts
Per Destination Policies ✅   config via address-settings
Virtual Destinations ✅   docs for backwards compatibility with OpenWire clients
Wildcards ✅   documentation

Interceptors

Feature Artemis Support JIRA Notes
Destinations Plugin ✅   documentation
Logging Interceptor ✅   documentation
StatisticsPlugin ✅   equivalent via management messages
TimeStampPlugin ❌    

Message Dispatching Features

Feature Artemis Support JIRA Notes
Async Sends ✅   supported for OpenWire & also for core (via blockOnDurableSend and blockOnNonDurableSend URL parameters)
Pluggable Dispatch Policies ❌   delay-before-dispatch and consumers-before-dispatch have been implemented
Message Cursors ✅   equivalent via paging
Optimized Acknowledgement ✅   supported for OpenWire & core as well via ackBatchSize URL parameter
Producer Flow Control ✅   documentation
Total Ordering ❌    

Message Features

Feature Artemis Support JIRA Notes
ActiveMQ Message Properties ✅    
Advisory Message ✅   equivalent support via management notifications
Blob Messages ✅   arbitrarily large messages supported
Delay and Schedule Message Delivery ✅   documentation
Message Transformation ✅   supported via transformers and remoting interceptors
ObjectMessage ✅   documentation
Structured Message Properties and MapMessages ❌    

Persistence

Feature Artemis Support JIRA Notes
AMQ Message Store ✅   equivalent functionality via journal
Configurable IOException Handling ❌   all IO errors considered critical
JDBC Support ✅    
KahaDB ✅   equivalent functionality via journal
Kaha Persistence ✅   equivalent functionality via journal
Periodically checking disk limits ✅    
Pluggable storage lockers ❌    
Replicated LevelDB Store ✅   equivalent functionality via journal replication HA config
Multi-kahaDB ❌ ARTEMIS-839  

Security

Feature Artemis Support JIRA Notes
Audit Logging ✅ ARTEMIS-2273 documentation
Cached LDAP Authorization Module ✅ ARTEMIS-168 documentation
Encrypted passwords ✅   documentation
Shiro ❌   equivalent functionality available via JAAS

Migration

This section should help to answer the end user question, ‘How do I migrate from ActiveMQ to Artemis?’. This should include the identification of any tools that can help make this easier, as well as documenting information and procedures specific to migrating.

  • Migration Guide
  • Export messages from KahaDB using this tool. The exported XML can be imported via the ./artemis data imp command.
  • For non-standard backends (where direct export isn’t an option) follow this example to migrate messages from ActiveMQ to Artemis over the wire.

Apache, ActiveMQ, Apache ActiveMQ, the Apache logo, and the Apache ActiveMQ project logo are trademarks of The Apache Software Foundation. Copyright © 2025, The Apache Software Foundation. Licensed under Apache License 2.0.