{"action":"created","issue":{"url":"https://api.github.com/repos/rapid7/propsd/issues/175","repository_url":"https://api.github.com/repos/rapid7/propsd","labels_url":"https://api.github.com/repos/rapid7/propsd/issues/175/labels{/name}","comments_url":"https://api.github.com/repos/rapid7/propsd/issues/175/comments","events_url":"https://api.github.com/repos/rapid7/propsd/issues/175/events","html_url":"https://github.com/rapid7/propsd/pull/175","id":159704105,"number":175,"title":"Refactor property storage and Consul watches","user":{"login":"fmitchell-r7","id":14876658,"avatar_url":"https://avatars.githubusercontent.com/u/14876658?v=3","gravatar_id":"","url":"https://api.github.com/users/fmitchell-r7","html_url":"https://github.com/fmitchell-r7","followers_url":"https://api.github.com/users/fmitchell-r7/followers","following_url":"https://api.github.com/users/fmitchell-r7/following{/other_user}","gists_url":"https://api.github.com/users/fmitchell-r7/gists{/gist_id}","starred_url":"https://api.github.com/users/fmitchell-r7/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fmitchell-r7/subscriptions","organizations_url":"https://api.github.com/users/fmitchell-r7/orgs","repos_url":"https://api.github.com/users/fmitchell-r7/repos","events_url":"https://api.github.com/users/fmitchell-r7/events{/privacy}","received_events_url":"https://api.github.com/users/fmitchell-r7/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":2,"created_at":"2016-06-10T19:20:51Z","updated_at":"2016-06-10T21:44:39Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/rapid7/propsd/pulls/175","html_url":"https://github.com/rapid7/propsd/pull/175","diff_url":"https://github.com/rapid7/propsd/pull/175.diff","patch_url":"https://github.com/rapid7/propsd/pull/175.patch"},"body":"On the surface, this fixes #147 and closes #150. Under the covers, a lot of work went into this.\r\n\r\nMost notably, the [`PluginManager`](https://github.com/rapid7/propsd/blob/v1.2.5/lib/plugin-manager.js) and [`Storage`](https://github.com/rapid7/propsd/blob/v1.2.5/lib/storage.js) classes have been replaced with a `Properties` class that leverages `View` and `Layer` classes to provide composable atomically updatable property management.\r\n\r\nSources now return a `Promise` when their `initialize()` function is called, and this is used to guarantee updates happen in a predictable fashion. Changes to the index document now block until all their referenced sources have polled for updates.\r\n\r\nThe Consul source now uses the same polling mechanism as the EC2 metadata and S3 sources instead of [Consul watches](https://www.consul.io/docs/agent/watches.html). This makes its behavior more predictable and scalable when running lots of services.\r\n\r\nFinally, additional metadata shows up in the `/v1/status` API that's useful for debugging."},"comment":{"url":"https://api.github.com/repos/rapid7/propsd/issues/comments/225303615","html_url":"https://github.com/rapid7/propsd/pull/175#issuecomment-225303615","issue_url":"https://api.github.com/repos/rapid7/propsd/issues/175","id":225303615,"user":{"login":"jmanero-r7","id":8549280,"avatar_url":"https://avatars.githubusercontent.com/u/8549280?v=3","gravatar_id":"","url":"https://api.github.com/users/jmanero-r7","html_url":"https://github.com/jmanero-r7","followers_url":"https://api.github.com/users/jmanero-r7/followers","following_url":"https://api.github.com/users/jmanero-r7/following{/other_user}","gists_url":"https://api.github.com/users/jmanero-r7/gists{/gist_id}","starred_url":"https://api.github.com/users/jmanero-r7/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jmanero-r7/subscriptions","organizations_url":"https://api.github.com/users/jmanero-r7/orgs","repos_url":"https://api.github.com/users/jmanero-r7/repos","events_url":"https://api.github.com/users/jmanero-r7/events{/privacy}","received_events_url":"https://api.github.com/users/jmanero-r7/received_events","type":"User","site_admin":false},"created_at":"2016-06-10T21:44:39Z","updated_at":"2016-06-10T21:44:39Z","body":"![:+1:](http://i.imgur.com/OaG3aqi.gif)"}}
{"actor":{"display_login":"jmanero-r7"}}