Revision 1 as of 2015-03-30 18:37:31

Clear message

Introduction

Feature List

Groups

Applications can easily become members of one or many user-defined groups. Groups allow applications to discover peers for scalability or high availability functions. Groups automatically elect 2 specially-designated members: "active" and "standby" (the application determines what these designations actually mean -- if anything). Members can indicate their capability to become "active" or "standby" and can specify a "credential" value -- the highest "credential" wins. Election results can be permanent or can be superceded by the admittance of a higher-credential member into the cluster (implementing optional fail-back semantics).

Applications can look at the member list of any group -- even ones they do not belong to. Groups can therefore be used to discover service providers. For example, the "load balancer" application can find all "web server" applications running in the cluster. Applications can also send messages to the "group" using different sending modes: the message can be directed to the active entity, the standby entity, all entities (broadcast), or a "random" entity (round-robin load balancing).

Groups make it easy to implement complex scale-out or high availability strategies, with no special logic inside the application.