{"action":"created","issue":{"url":"https://api.github.com/repos/m3db/m3cluster/issues/131","repository_url":"https://api.github.com/repos/m3db/m3cluster","labels_url":"https://api.github.com/repos/m3db/m3cluster/issues/131/labels{/name}","comments_url":"https://api.github.com/repos/m3db/m3cluster/issues/131/comments","events_url":"https://api.github.com/repos/m3db/m3cluster/issues/131/events","html_url":"https://github.com/m3db/m3cluster/pull/131","id":239525588,"number":131,"title":"[services] Leader: election functionality","user":{"login":"schallert","id":434973,"avatar_url":"https://avatars2.githubusercontent.com/u/434973?v=3","gravatar_id":"","url":"https://api.github.com/users/schallert","html_url":"https://github.com/schallert","followers_url":"https://api.github.com/users/schallert/followers","following_url":"https://api.github.com/users/schallert/following{/other_user}","gists_url":"https://api.github.com/users/schallert/gists{/gist_id}","starred_url":"https://api.github.com/users/schallert/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/schallert/subscriptions","organizations_url":"https://api.github.com/users/schallert/orgs","repos_url":"https://api.github.com/users/schallert/repos","events_url":"https://api.github.com/users/schallert/events{/privacy}","received_events_url":"https://api.github.com/users/schallert/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":1,"created_at":"2017-06-29T15:49:37Z","updated_at":"2017-07-10T18:27:08Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/m3db/m3cluster/pulls/131","html_url":"https://github.com/m3db/m3cluster/pull/131","diff_url":"https://github.com/m3db/m3cluster/pull/131.diff","patch_url":"https://github.com/m3db/m3cluster/pull/131.patch"},"body":"Still working on some package-level docs but the comments in `services/types.go`\r\nshould serve as a sufficient high-level overview.\r\n\r\nCompared to [the previous](https://github.com/m3db/m3cluster/pull/115) iteration of this PR, this one notably uses channels\r\ninstead of `xwatch.Watch`s, and does not include automatic retries. The channel\r\nchange is due to the nature of the caller needing to process each state event in\r\norder, which might not happen if the state changes between when the `watch.C()`\r\nchannel was notified and when the caller received the value from `watch.Get()`.\r\nThe removal of retries is potentially temporary, but at least for now it greatly\r\ncomplicates managing the state of an election. Furthermore different clients may\r\nneed different retry logic (some might not want to retry campaigns at all), and\r\nuntil we have a better idea of what the different use cases are it's not\r\ndifficult for clients needing retries to do so in a loop and checking the value\r\nof `service.Leader()` if they encounter an error to determine if they need to\r\nretry."},"comment":{"url":"https://api.github.com/repos/m3db/m3cluster/issues/comments/314193339","html_url":"https://github.com/m3db/m3cluster/pull/131#issuecomment-314193339","issue_url":"https://api.github.com/repos/m3db/m3cluster/issues/131","id":314193339,"user":{"login":"coveralls","id":2354108,"avatar_url":"https://avatars2.githubusercontent.com/u/2354108?v=3","gravatar_id":"","url":"https://api.github.com/users/coveralls","html_url":"https://github.com/coveralls","followers_url":"https://api.github.com/users/coveralls/followers","following_url":"https://api.github.com/users/coveralls/following{/other_user}","gists_url":"https://api.github.com/users/coveralls/gists{/gist_id}","starred_url":"https://api.github.com/users/coveralls/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/coveralls/subscriptions","organizations_url":"https://api.github.com/users/coveralls/orgs","repos_url":"https://api.github.com/users/coveralls/repos","events_url":"https://api.github.com/users/coveralls/events{/privacy}","received_events_url":"https://api.github.com/users/coveralls/received_events","type":"User","site_admin":false},"created_at":"2017-07-10T18:27:08Z","updated_at":"2017-07-10T18:27:08Z","body":"\n[![Coverage Status](https://coveralls.io/builds/12327934/badge)](https://coveralls.io/builds/12327934)\n\nCoverage decreased (-1.2%) to 84.925% when pulling **0547abf8ab5ac445c354eb0929a0a9624a13c275 on schallert/leader_service** into **b7adfcc24d05e39be7db06bc4ab0beabf4573183 on master**.\n"}}
{"actor":{"display_login":"coveralls"}}