We analyse the requirements for AMQP local-area and wide-area clustering and we design a generic clustering model based on simple and easy to manage elements. The clustering model provides two main functionalities: the use of high-availability pairs of servers and the ability to partition groups of client applications, for reasons of scalability and geographic distribution.
This document was written by Pieter Hintjens (iMatix Corporation).
This document is the fourth major revision of the clustering design implemented in OpenAMQ, one of the AMQP implementations. The first three designs attempted to mix scalability (clustering servers for performance) with fault-tolerance (failing over). The key aspect of this design is the separation of these two functions into orthogonal layers. The specifications and designs in this document are applicable to any AMQP implementation, not just OpenAMQ.