activemq-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Matt Pavlovich <>
Subject Artemis feature TODO list
Date Fri, 04 Nov 2016 21:47:44 GMT

I put together a rough list of features that appear to be gaps in 
Artemis. Some of these are from current ActiveMQ features, and others 
are comparison from other leading messaging brokers (IBM MQ, Tibco EMS, 
Sonic MQ, etc).

This list was started a couple weeks ago and is probably outdated. 
Additionally, I have not made a deep dive into Artemis code to confirm 
some behavior assumptions. I thought it would be good to get a 
conversation started on Artemis feature gaps and see how the wider 
ActiveMQ user community felt about these features. A number of them 
definitely need more detail and I'd be happy to flush them out into a 
JIRA (I've started creating some JIRAs already and those are indicated).

Here we go...

Matt's Artemis Feature TODO:

1. Browse needs a page limit (ActiveMQ)
2. Sparse file support for disk journal (ActiveMQ)
3. Separate lock location from storage location for master-slave mode 
4. Option to have on-disk index for super large message counts w/ low 
JDK memory (ActiveMQ)
5. File-based lease locker for slaves on Windows CIFS shares and other 
non-cluster locking filesystems (IBM MQ)
6. Separate Inhibit Put and Inhibit Get on a queue vs “pause & resume” 
allows for draining of queues by applications during maintenance windows 
7. Cluster connectors should support static include / dynamic include / 
exclude destination name filter (ActiveMQ)
8. Composite Queue and Topic support (ActiveMQ)
9. Virtual Topic support (IBM MQ, ActiveMQ)
     a. Shared subscriptions
     b. Separate destinations for pub vs sub (allows for splitting 
traffic across networks)
10. Explicit Transmission queues for broker-to-broker communication so 
admins have visibility into what messages are earmarked to move.
     a. Should support multi-threaded transmission (i.e. multiple 
cluster connections)  (IBM MQ, TIbco EMS, SonicMQ, others)
     b. ActiveMQ is starting to address this with broker-subscriptions 
for Network Connectors on Topics.
     c. This is also needed for broker-to-broker sharing of pub-sub to 
avoid pub-sub loops
11. Separate consumerTTL and messageTTL for cluster connections (ActiveMQ)
12. Destination Policy API (aka Queue Attributes in Artemis) for 
extending destination policy plugins
13. Automatic DLQ naming convention policies (prefix and/or suffix based)
14. Missing support for many messaging scheduler features
15. Queue attributes to limit max message count and total bytes (IBM MQ, 
Tibco EMS)
16. Internally defined message headers should have aliases to align to 
the JMS provider standard (“JMS_AMQ_*” vs “_AMQ_”)  IBM MQ, Tibco, 
Sonic, others
17. Client-side url lookup using http endpoint (or other)
18. Inactive Destination Garbage Collection
19. Plugins: Message Timestamping, Message Expiry, Broker Path plugin
20. JMSXUserId property auto assigned using connected userId
21. Anonymous and guest authorizer
22. Deliver directly to consumer from memory by limiting total space to 
in-memory page size (ActiveMQ vmCursor)
23. vm:// client protocol for same-JDK communication to allow for 
bypassing of the marshal/unmarshal and TCP layers
24. Exclusive Consumer and Exclusive Consumer with Message Groups
25. Support for subscribing to advisory/event messages (ActiveMQ, IBM 
MQ, others)

26. Duplex support for cluster-connections (ARTEMIS-838, ActiveMQ)

27. Support multiple journal-directory data stores (ARTEMIS-839 
ActiveMQ, Tibco EMS)

28. Plugin API for message selector store for Virtual Topic 

Wishlist features:

29. Plugin API for messageId repository for duplicate checking. The 
ability to have a cache (jcache prolly, right?): Infinispan, Hazelcast 
or other to support large and externally managed messageId caches for 
dup handling between brokers

30. AMQP 0.9 support (RabbitMQ)

31. Fanout client producer uri (ActiveMQ)

32. Round-robin client producer uri

View raw message