I am looking for a library that will allow an arbitrary group of computers to participate in a "cluster", where I'm using that term to mean a group of systems in which:
- the systems are able to automatically discover each other,
- the systems engage in a master election process to determine the cluster master
- the systems will re-elect a new master if the existing master goes away.
Ideally, the library should support communication over broadcast or multicast channels, and should provide facilities for querying the state of the "cluster" (participating nodes and the current master).
Thanks for your help!