From Bela Ban:
JGroups is a toolkit for reliable messaging. It can be used to create clusters whose nodes can send messages to each other. The main features include Cluster creation and deletion that can be spread across LANs or WANs, joining and leaving of clusters, membership detection and notification about joined, left, and crashed cluster nodes, detection and removal of crashed nodes, sending and receiving of node-to-cluster messages (point-to-multipoint), and sending and receiving of node-to-node messages (point-to-point). 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.