There are currently two "flavors" of ActiveMQ available - the well-known "classic" broker and the "next generation" broker code-named Artemis. Once Artemis reaches a sufficient level of feature parity with the "Classic" code-base it will become the next major version of ActiveMQ. Initial migration documentation is available as well as a development roadmap for Artemis.
Long established, endlessly pluggable architecture serving many generations of applications.
- JMS 1.1 with full client implementation including JNDI
- High availability using shared storage
- Familiar JMS-based addressing model
- "Network of brokers" for distributing load
- KahaDB & JDBC options for persistence
High-performance, non-blocking architecture for the next generation of messaging applications.
- JMS 1.1 & 2.0 + Jakarta Messaging 2.0 & 3.0 with full client implementations including JNDI
- High availability using shared storage or network replication
- Simple & powerful protocol agnostic addressing model
- Flexible clustering for distributing load
- Advanced journal implementations for low-latency persistence as well as JDBC
- High feature parity with ActiveMQ "Classic" to ease migration
- Asynchronous mirroring for disaster recovery
- Data Driven Load Balance
Protect your data & Balance your Load
ActiveMQ provides many advanced features including message load-balancing and high-availability for your data. Multiple connected "master" brokers can dynamically respond to consumer demand by moving messages between the nodes in the background. Brokers can also be paired together in a master-slave configuration so that if a master fails then the slave takes over ensuring clients can get to their important data and eliminating costly downtime.
Easy Enterprise Integration Patterns
Enterprise Integration Patterns describe the various ways in which multiple applications generally interact and integrate with each other. Aysnchronous messaging is at the heart of this integration, and ActiveMQ makes it easy to leverage these patterns via Apache Camel routes deployed directly on the broker.
ActiveMQ is most commonly deployed as a standalone process. This option isolates ActiveMQ from any particular application and provides maximum flexibility for resource allocation and management. However, ActiveMQ can be configured to have a very small footprint which makes it viable to embed it within your application. This option can provide an application with simple, powerful messaging semantics and also allow easy message exchange with other applications.