Gossip framework written in kotlin
A gossip protocol is a procedure or process of computer–computer communication that is based on the way social networks disseminate information or how epidemics spread. It is a communication protocol. Modern distributed systems often use gossip protocols to solve problems that might be difficult to solve in other ways, either because the underlying network has an inconvenient structure, is extremely large, or because gossip solutions are the most efficient ones available.
The term epidemic protocol is sometimes used as a synonym for a gossip protocol, because gossip spreads information in a manner similar to the spread of a virus in a biological community. (wikipedia)
GossipConfiguration:
id - is a unique id for node
host - the address this machine listens for peer connections
port - the port to use on the default adapter on the node's machine
gossipInterval - how often (in milliseconds) to gossip list of members to other node(s)
cleanupInterval - timeout when node moved to dead state
members - seed nodes
Example of configuration:
val me = GossipNode("xCluster", "127.0.0.1", 50000, "notebook", 0)
val members = arrayListOf(GossipNode("xCluster", "127.0.0.1", 50001, "seedNode1", 0), GossipNode("xCluster", "127.0.0.1", 50002, "seedNode2", 0))
val gossipConfiguration = GossipConfiguration(me, members)