{"action":"closed","issue":{"url":"https://api.github.com/repos/NCEAS/metadig-engine/issues/102","repository_url":"https://api.github.com/repos/NCEAS/metadig-engine","labels_url":"https://api.github.com/repos/NCEAS/metadig-engine/issues/102/labels{/name}","comments_url":"https://api.github.com/repos/NCEAS/metadig-engine/issues/102/comments","events_url":"https://api.github.com/repos/NCEAS/metadig-engine/issues/102/events","html_url":"https://github.com/NCEAS/metadig-engine/issues/102","id":289453227,"number":102,"title":"design async execution architecture","user":{"login":"mbjones","id":766407,"avatar_url":"https://avatars0.githubusercontent.com/u/766407?v=4","gravatar_id":"","url":"https://api.github.com/users/mbjones","html_url":"https://github.com/mbjones","followers_url":"https://api.github.com/users/mbjones/followers","following_url":"https://api.github.com/users/mbjones/following{/other_user}","gists_url":"https://api.github.com/users/mbjones/gists{/gist_id}","starred_url":"https://api.github.com/users/mbjones/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mbjones/subscriptions","organizations_url":"https://api.github.com/users/mbjones/orgs","repos_url":"https://api.github.com/users/mbjones/repos","events_url":"https://api.github.com/users/mbjones/events{/privacy}","received_events_url":"https://api.github.com/users/mbjones/received_events","type":"User","site_admin":false},"labels":[{"id":808164047,"url":"https://api.github.com/repos/NCEAS/metadig-engine/labels/controller","name":"controller","color":"006b75","default":false},{"id":808152687,"url":"https://api.github.com/repos/NCEAS/metadig-engine/labels/engine","name":"engine","color":"3998b2","default":false},{"id":808206955,"url":"https://api.github.com/repos/NCEAS/metadig-engine/labels/in%20progress","name":"in progress","color":"ededed","default":false}],"state":"closed","locked":false,"assignee":{"login":"gothub","id":6412946,"avatar_url":"https://avatars1.githubusercontent.com/u/6412946?v=4","gravatar_id":"","url":"https://api.github.com/users/gothub","html_url":"https://github.com/gothub","followers_url":"https://api.github.com/users/gothub/followers","following_url":"https://api.github.com/users/gothub/following{/other_user}","gists_url":"https://api.github.com/users/gothub/gists{/gist_id}","starred_url":"https://api.github.com/users/gothub/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/gothub/subscriptions","organizations_url":"https://api.github.com/users/gothub/orgs","repos_url":"https://api.github.com/users/gothub/repos","events_url":"https://api.github.com/users/gothub/events{/privacy}","received_events_url":"https://api.github.com/users/gothub/received_events","type":"User","site_admin":false},"assignees":[{"login":"mbjones","id":766407,"avatar_url":"https://avatars0.githubusercontent.com/u/766407?v=4","gravatar_id":"","url":"https://api.github.com/users/mbjones","html_url":"https://github.com/mbjones","followers_url":"https://api.github.com/users/mbjones/followers","following_url":"https://api.github.com/users/mbjones/following{/other_user}","gists_url":"https://api.github.com/users/mbjones/gists{/gist_id}","starred_url":"https://api.github.com/users/mbjones/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mbjones/subscriptions","organizations_url":"https://api.github.com/users/mbjones/orgs","repos_url":"https://api.github.com/users/mbjones/repos","events_url":"https://api.github.com/users/mbjones/events{/privacy}","received_events_url":"https://api.github.com/users/mbjones/received_events","type":"User","site_admin":false},{"login":"gothub","id":6412946,"avatar_url":"https://avatars1.githubusercontent.com/u/6412946?v=4","gravatar_id":"","url":"https://api.github.com/users/gothub","html_url":"https://github.com/gothub","followers_url":"https://api.github.com/users/gothub/followers","following_url":"https://api.github.com/users/gothub/following{/other_user}","gists_url":"https://api.github.com/users/gothub/gists{/gist_id}","starred_url":"https://api.github.com/users/gothub/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/gothub/subscriptions","organizations_url":"https://api.github.com/users/gothub/orgs","repos_url":"https://api.github.com/users/gothub/repos","events_url":"https://api.github.com/users/gothub/events{/privacy}","received_events_url":"https://api.github.com/users/gothub/received_events","type":"User","site_admin":false}],"milestone":{"url":"https://api.github.com/repos/NCEAS/metadig-engine/milestones/3","html_url":"https://github.com/NCEAS/metadig-engine/milestone/3","labels_url":"https://api.github.com/repos/NCEAS/metadig-engine/milestones/3/labels","id":3020467,"number":3,"title":"2.0.0","description":"This release will contain a facility to generate quality reports for the 'backlog' of\r\nmetadata documents that are currently on member nodes but don't have quality\r\nreports. Also, any updates or new quality suites will be included.","creator":{"login":"gothub","id":6412946,"avatar_url":"https://avatars1.githubusercontent.com/u/6412946?v=4","gravatar_id":"","url":"https://api.github.com/users/gothub","html_url":"https://github.com/gothub","followers_url":"https://api.github.com/users/gothub/followers","following_url":"https://api.github.com/users/gothub/following{/other_user}","gists_url":"https://api.github.com/users/gothub/gists{/gist_id}","starred_url":"https://api.github.com/users/gothub/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/gothub/subscriptions","organizations_url":"https://api.github.com/users/gothub/orgs","repos_url":"https://api.github.com/users/gothub/repos","events_url":"https://api.github.com/users/gothub/events{/privacy}","received_events_url":"https://api.github.com/users/gothub/received_events","type":"User","site_admin":false},"open_issues":39,"closed_issues":4,"state":"open","created_at":"2018-01-08T17:43:22Z","updated_at":"2018-03-07T20:37:20Z","due_on":"2018-04-01T07:00:00Z","closed_at":null},"comments":1,"created_at":"2018-01-17T23:39:27Z","updated_at":"2018-03-07T20:37:21Z","closed_at":"2018-03-07T20:37:20Z","author_association":"CONTRIBUTOR","body":"Design a new approach to executing metadig jobs that uses asynchronous workers that can be scaled and a reliable job queue.  There would likely be two queues maintained, one called 'pending' which holds the list of jobs to be processed, and one called 'inprocess' for jobs that have been taken by a worker and are being actively processed.\r\n\r\nWhen workers take a job from the pending queue, it is added to the inprocess queue, along with metadata on when processing started.  A reasonable timeout should control whether the controller nixes a job and reissues the job in the pending queue for other workers to pick up.\r\n\r\nThe queue should be designed such that a worker can crash, and no in progress or pending jobs will be lost.\r\n\r\n- [x] Revised Architecture.md page\r\n- [x] Component diagram completed and embedded in architecture page\r\n- [x] Sequence diagrams completed and in architecture page (#103, #104, #105)\r\n- [x] Design mockups completed and in architecture page"}}
{"actor":{"display_login":"gothub"}}