blob: b8e4033969f0d843c09f0521b3fe28fc1ddbdeae [file] [log] [blame]
<div class="wiki-content maincontent"><p>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. </p>
<p>It is designed to be used by multiple languages on multiple platforms - and has three main goals:</p>
<ol><li>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:
<ul><li>NACK-based reliable protocols</li><li>Totem protocol</li><li>Forward Error correction</li></ul>
</li><li>Active Group membership management to allow true point-to-point communication and group messaging</li><li>Cluster management for shared state, fault tolerance, reliability and availability.</li></ol>
<p>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.</p>
<p>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.</p>
<h2 id="ActiveMQRealTime-lowlatencyreliablemulticast">low latency reliable multicast</h2>
<h2 id="ActiveMQRealTime-Groupmembership">Group membership</h2>
<p>Support for dynamic joining and leaving of groups, membership notifications and true point to point and queue messaging:</p>
<ul><li>Dynamic membership information</li><li>broadcast messaging</li><li>point-to-point</li><li>in boxes</li><li>configurable heartbeats</li></ul>
<h2 id="ActiveMQRealTime-Clustermanagement">Cluster management</h2>
<p>A distributed state map, with the following:</p>
<ul><li>Distributed state (Map)</li><li>Map change listeners</li><li>write locks</li><li>lock expiration</li><li>optional state and lock removal when a member leaves</li><li>automatic state and lock replication and failover</li></ul>
<h2 id="ActiveMQRealTime-Inmoredetail...">In more detail ...</h2>
<ul class="childpages-macro"><li><a shape="rect" href="broadcasting.html">Broadcasting</a></li><li><a shape="rect" href="group-membership.html">Group Membership</a></li><li><a shape="rect" href="life-cycle.html">Life Cycle</a></li><li><a shape="rect" href="the-activeblaze-message-type.html">The ActiveBlaze Message type</a></li></ul></div>