Desirable Techniques: Understanding Modern Messaging with ActiveMQ and ActiveMQ Artemis
What is Apache ActiveMQ?
Apache ActiveMQ is one of the oldest and most trusted open-source message brokers. Written in Java, it supports multiple protocols and client APIs and offers message persistence, delivery guarantees, and advanced routing. It’s common in enterprise environments where robustness and scalability are critical.
Introduction to Artemis
ActiveMQ Artemis is the modern successor to “ActiveMQ Classic,” originating from the HornetQ codebase. It focuses on performance and scalability with simplified clustering, advanced replication, and a streamlined configuration model.
Key Features & Comparison
For consulting or automation help, read more about our services:
Read about Arina Consulting
Both ActiveMQ and Artemis are robust, but they diverge in design and capabilities:
-
Performance & Storage:
ActiveMQ uses KahaDB (journal + index). Artemis uses an append-only journal and no separate index, which improves performance. -
Protocol Support:
ActiveMQ supports MQTT, STOMP, OpenWire, etc. Artemis broadens protocol coverage and simplifies configuration; WebSockets are supported out of the box. -
Clustering & HA:
ActiveMQ provides basic clustering. Artemis offers easier setup, automatic failover, and live-backup modes for stronger HA. -
Management & Configuration:
Artemis modernizes configuration (e.g.,broker.xml
) and ships with better defaults and management ergonomics.
Criteria | ActiveMQ Classic | Artemis |
---|---|---|
IO connectivity layer | TCP (sync) and NIO (non-blocking) | Netty-based NIO; one acceptor can serve multiple protocols; WebSockets out of the box |
Message store | KahaDB (journal + index) | Append-only journal (no index) |
Paging under memory pressure | Cursors cache messages; falls back to store; requires journal index | Journal resides in memory; producer-side paging to sequential files; no index needed |
Message addressing & routing | Non-OpenWire protocols translated internally to OpenWire | Anycast for point-to-point across protocols |
Broker instance model | Optional separation of install/config | Explicit broker instance creation |
Main config files | conf/activemq.xml , JAAS in plugins | etc/broker.xml , etc/artemis.profile |
Logging | etc/logging.properties | etc/logging.properties |
Foreground start | bin/activemq console | bin/artemis run |
Service start | bin/activemq start | bin/artemis-service start |
JMS support | JMS 1.1 | JMS 2.0 |
Durable subscribers | Per-destination durable subs may duplicate across nodes | Modeled as queues—avoids duplication |
Authentication | Groups via JAAS (plugins in conf/activemq.xml ) | Roles |
Authorization | conf/activemq.xml | etc/broker.xml |
Policies | Destination policies (e.g., write) | Fine-grained queue policies (e.g., send) |
Project status | Mature, widely adopted | Active, successor to Classic |
Performance | Good, with some limits | High performance |
Persistence | KahaDB / JDBC | Fast journal |
Architecture | Traditional broker; can bottleneck under very high throughput | Asynchronous design aimed at high throughput |
High availability | Master–slave | Live–backup, shared-nothing failover |
Clustering | Network of brokers | Advanced clustering with automatic client failover |
Management | JMX; more manual | Improved JMX, web console, protocol-level management |
Filtering | Basic selectors | Advanced filtering; plugin support |
Security | AuthN / AuthZ supported | Enhanced features incl. SSL/TLS, JAAS |
Federation | Custom config | Native support for geo-distributed clusters |
Practical Applications
- Choose ActiveMQ Classic if you need a proven, conservative broker compatible with legacy systems.
- Choose Artemis for modern workloads needing higher throughput, simpler HA, cleaner config, and broader protocol handling.
Ready to take your architecture to the next level?
Contact us
Conclusion
Both brokers deliver reliable messaging. Your decision should align with current requirements and future scale. If you’re starting fresh or planning to scale aggressively, Artemis is usually the better bet.
🔚 Call to Action
Choosing the right platform depends on your organization’s needs.
Subscribe to our newsletter for cloud tips and trends, or follow our video series on cloud comparisons.
Interested in a guided setup? Contact us—we’re happy to help.