JGroups is a messaging framework which allows developers to create reliable messaging (one-to-one or one-to-many) applications where reliability is a deployment issue, and does not have to be implemented by the application developer. The most powerful feature of JGroups is its flexible protocol stack, which allows developers to adapt it to exactly match their application requirements and network characteristics. The benefit of this is that you only pay for what you use. By mixing and matching protocols, various differing application requirements can be satisfied.