During my job for an important client, I began thinking about high availability and recovery NFRs – our tech stack included Cassandra and Kafka, two distributed systems whose internal behavior I studied.
Kafka uses Zookeeper to keep track of assigned partitions for each consumer; Cassandra has a gossip algorithm between nodes and divides data in partition ranges.
So, I was starting to think if there was any library (not an external service like zookeeper) that had an algorithm with gossip implemented so that people could build new distributed systems more easily.
That library does not exist, so I created ring-election .
You can integrate ring-election into your node process, and you will have some important pre-constructed NFRs!!!
What the ring-election driver offers you:
Terminology:
Need to know how to integrate it? Join https://github.com/pioardi/ring-election for more info. If you want to suggest new features or need help integrating a ring-election, open an issue on GitHub and I will be happy to help you. Also, new feature and pull requests are welcome :)