{"action":"created","issue":{"url":"https://api.github.com/repos/ktoso/akka-raft/issues/55","labels_url":"https://api.github.com/repos/ktoso/akka-raft/issues/55/labels{/name}","comments_url":"https://api.github.com/repos/ktoso/akka-raft/issues/55/comments","events_url":"https://api.github.com/repos/ktoso/akka-raft/issues/55/events","html_url":"https://github.com/ktoso/akka-raft/pull/55","id":98626263,"number":55,"title":"Correct handling of term updates during the election for Candidate/Follower","user":{"login":"dmitraver","id":1798156,"avatar_url":"https://avatars.githubusercontent.com/u/1798156?v=3","gravatar_id":"","url":"https://api.github.com/users/dmitraver","html_url":"https://github.com/dmitraver","followers_url":"https://api.github.com/users/dmitraver/followers","following_url":"https://api.github.com/users/dmitraver/following{/other_user}","gists_url":"https://api.github.com/users/dmitraver/gists{/gist_id}","starred_url":"https://api.github.com/users/dmitraver/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dmitraver/subscriptions","organizations_url":"https://api.github.com/users/dmitraver/orgs","repos_url":"https://api.github.com/users/dmitraver/repos","events_url":"https://api.github.com/users/dmitraver/events{/privacy}","received_events_url":"https://api.github.com/users/dmitraver/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":3,"created_at":"2015-08-02T18:21:47Z","updated_at":"2015-08-03T08:22:22Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/ktoso/akka-raft/pulls/55","html_url":"https://github.com/ktoso/akka-raft/pull/55","diff_url":"https://github.com/ktoso/akka-raft/pull/55.diff","patch_url":"https://github.com/ktoso/akka-raft/pull/55.patch"},"body":"According to the raft paper \r\n\"Current terms are exchanged whenever servers communicate; if one server’s current term is smaller than the other’s, then it updates its current term to the larger value. If a candidate or leader discovers that its term is out of date, it immediately reverts to follower state. If a server receives a request with a stale term number, it rejects the request.\"\r\n\r\nThis pull request implements this rules for election phase of Follower/Candidate states. It also fixes the #46 and #47 issues."},"comment":{"url":"https://api.github.com/repos/ktoso/akka-raft/issues/comments/127161941","html_url":"https://github.com/ktoso/akka-raft/pull/55#issuecomment-127161941","issue_url":"https://api.github.com/repos/ktoso/akka-raft/issues/55","id":127161941,"user":{"login":"dmitraver","id":1798156,"avatar_url":"https://avatars.githubusercontent.com/u/1798156?v=3","gravatar_id":"","url":"https://api.github.com/users/dmitraver","html_url":"https://github.com/dmitraver","followers_url":"https://api.github.com/users/dmitraver/followers","following_url":"https://api.github.com/users/dmitraver/following{/other_user}","gists_url":"https://api.github.com/users/dmitraver/gists{/gist_id}","starred_url":"https://api.github.com/users/dmitraver/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dmitraver/subscriptions","organizations_url":"https://api.github.com/users/dmitraver/orgs","repos_url":"https://api.github.com/users/dmitraver/repos","events_url":"https://api.github.com/users/dmitraver/events{/privacy}","received_events_url":"https://api.github.com/users/dmitraver/received_events","type":"User","site_admin":false},"created_at":"2015-08-03T08:22:21Z","updated_at":"2015-08-03T08:22:21Z","body":"@colin-scott Hi, Colin. I guess you're right but it's not good anyway. The problem is that previously term updates that are handled by this PR weren't reflected in the code and this new changes can cascade and affect other parts of code that depends on it because everything is linked to some extend."}}