blob: 29757cb0dcdfcdc39d5e98e9f2a59873a57c352e [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>low latency reliable multicast</h2>
<h2>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>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>In more detail ...</h2>
<structured-macro ac:macro-id="91ae2935-d0f6-4b85-ba65-3c2a8ae9d156" ac:name="children" ac:schema-version="1"></structured-macro></div>