ActiveMQ Real Time
ActiveMQ Real Time is a sub-project of the popular Apache ActiveMQ messaging system but is designed specifically to meet the needs for low latency high throughput collaborative real-time applications.
It is designed to be used by multiple languages on multiple platforms - and has three main goals:
- Low latency pluggable reliable multicast - with different qualities of service. The complexities of group communication means that different reliable multicast protocols must be used to meet the needs of real-time application collaboration. ActiveBlaze supports pluggable protocols, which will include:
- NACK-based reliable protocols
- Totem protocol
- Forward Error correction
- Active Group membership management to allow true point-to-point communication and group messaging
- Cluster management for shared state, fault tolerance, reliability and availability.
The need for low latency means that the JMS (Java Message Service) API is not always a suitable fit and ActiveBlaze comes with its own bespoke API’s to accomplish very high throughput. It is a goal of the project to provide an optional JMS API layer on top of core ActiveBlaze API’s to enable it to be a drop in replacement for more traditional hub and spoke messaging deployments.
To enable cross-language support ,enable versioning of the wire format, and aid fast throughput - Apache ActiveBlaze is built on top of the Google’s protobuf - a framework for efficiently encoding extensible data structures.
low latency reliable multicast
Support for dynamic joining and leaving of groups, membership notifications and true point to point and queue messaging:
- Dynamic membership information
- broadcast messaging
- in boxes
- configurable heartbeats
A distributed state map, with the following:
- Distributed state (Map)
- Map change listeners
- write locks
- lock expiration
- optional state and lock removal when a member leaves
- automatic state and lock replication and failover