{"action":"created","issue":{"url":"https://api.github.com/repos/bbengfort/cloudscope/issues/3","labels_url":"https://api.github.com/repos/bbengfort/cloudscope/issues/3/labels{/name}","comments_url":"https://api.github.com/repos/bbengfort/cloudscope/issues/3/comments","events_url":"https://api.github.com/repos/bbengfort/cloudscope/issues/3/events","html_url":"https://github.com/bbengfort/cloudscope/issues/3","id":126042909,"number":3,"title":"Gossip Protocol","user":{"login":"bbengfort","id":745966,"avatar_url":"https://avatars.githubusercontent.com/u/745966?v=3","gravatar_id":"","url":"https://api.github.com/users/bbengfort","html_url":"https://github.com/bbengfort","followers_url":"https://api.github.com/users/bbengfort/followers","following_url":"https://api.github.com/users/bbengfort/following{/other_user}","gists_url":"https://api.github.com/users/bbengfort/gists{/gist_id}","starred_url":"https://api.github.com/users/bbengfort/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bbengfort/subscriptions","organizations_url":"https://api.github.com/users/bbengfort/orgs","repos_url":"https://api.github.com/users/bbengfort/repos","events_url":"https://api.github.com/users/bbengfort/events{/privacy}","received_events_url":"https://api.github.com/users/bbengfort/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/bbengfort/cloudscope/labels/in%20progress","name":"in progress","color":"cccccc"},{"url":"https://api.github.com/repos/bbengfort/cloudscope/labels/priority:%20high","name":"priority: high","color":"e11d21"},{"url":"https://api.github.com/repos/bbengfort/cloudscope/labels/type:%20feature","name":"type: feature","color":"bfe5bf"}],"state":"open","locked":false,"assignee":{"login":"bbengfort","id":745966,"avatar_url":"https://avatars.githubusercontent.com/u/745966?v=3","gravatar_id":"","url":"https://api.github.com/users/bbengfort","html_url":"https://github.com/bbengfort","followers_url":"https://api.github.com/users/bbengfort/followers","following_url":"https://api.github.com/users/bbengfort/following{/other_user}","gists_url":"https://api.github.com/users/bbengfort/gists{/gist_id}","starred_url":"https://api.github.com/users/bbengfort/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bbengfort/subscriptions","organizations_url":"https://api.github.com/users/bbengfort/orgs","repos_url":"https://api.github.com/users/bbengfort/repos","events_url":"https://api.github.com/users/bbengfort/events{/privacy}","received_events_url":"https://api.github.com/users/bbengfort/received_events","type":"User","site_admin":false},"milestone":null,"comments":0,"created_at":"2016-01-11T21:40:02Z","updated_at":"2016-01-12T11:01:41Z","closed_at":null,"body":"We need a way to propagate information throughout the network since not all replicas are directly connected to each other. Our first implementation for data propagation is the _rumor mongering_ or _gossip protocol_. Right now this is implemented as follows:\r\n\r\n1. Node creates data adds version to version list. \r\n2. Sends message with version to all connections. \r\n3. On receipt of a message respond with an acknowledgment. \r\n4. If the message is _new_ (unseen) then add to log and for every node but the sender of the message, forward the message. \r\n\r\nFrom what I can tell, this protocol does eventually converge; but it seems to send _a lot_ of messages. More than I expected. "},"comment":{"url":"https://api.github.com/repos/bbengfort/cloudscope/issues/comments/170876690","html_url":"https://github.com/bbengfort/cloudscope/issues/3#issuecomment-170876690","issue_url":"https://api.github.com/repos/bbengfort/cloudscope/issues/3","id":170876690,"user":{"login":"bbengfort","id":745966,"avatar_url":"https://avatars.githubusercontent.com/u/745966?v=3","gravatar_id":"","url":"https://api.github.com/users/bbengfort","html_url":"https://github.com/bbengfort","followers_url":"https://api.github.com/users/bbengfort/followers","following_url":"https://api.github.com/users/bbengfort/following{/other_user}","gists_url":"https://api.github.com/users/bbengfort/gists{/gist_id}","starred_url":"https://api.github.com/users/bbengfort/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bbengfort/subscriptions","organizations_url":"https://api.github.com/users/bbengfort/orgs","repos_url":"https://api.github.com/users/bbengfort/repos","events_url":"https://api.github.com/users/bbengfort/events{/privacy}","received_events_url":"https://api.github.com/users/bbengfort/received_events","type":"User","site_admin":false},"created_at":"2016-01-12T11:01:41Z","updated_at":"2016-01-12T11:01:41Z","body":"Ok, the issue with the messages was that I was sending a different version id for each message to the new replicas; so instead of sending 1 version I was sending 3, hence all the new messages."}}