JGroups is a toolkit for reliable multicast communication.
(Note that this does not necessarily mean IP Multicast, JGroups can also use transports such as TCP).
It can be used to create groups of processes whose members can send messages to each other. The main features include
Group creation and deletion. Group members can be spread across LANs or WANs
Joining and leaving of groups
Membership detection and notification about joined/left/crashed members
Detection and removal of crashed members
Sending and receiving of member-to-group messages (point-to-multipoint)
Sending and receiving of member-to-member messages (point-to-point)