{"action":"created","issue":{"url":"https://api.github.com/repos/tcdl/msb/issues/115","repository_url":"https://api.github.com/repos/tcdl/msb","labels_url":"https://api.github.com/repos/tcdl/msb/issues/115/labels{/name}","comments_url":"https://api.github.com/repos/tcdl/msb/issues/115/comments","events_url":"https://api.github.com/repos/tcdl/msb/issues/115/events","html_url":"https://github.com/tcdl/msb/issues/115","id":172409402,"number":115,"title":"Performance improvements","user":{"login":"anha1","id":16097926,"avatar_url":"https://avatars.githubusercontent.com/u/16097926?v=3","gravatar_id":"","url":"https://api.github.com/users/anha1","html_url":"https://github.com/anha1","followers_url":"https://api.github.com/users/anha1/followers","following_url":"https://api.github.com/users/anha1/following{/other_user}","gists_url":"https://api.github.com/users/anha1/gists{/gist_id}","starred_url":"https://api.github.com/users/anha1/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/anha1/subscriptions","organizations_url":"https://api.github.com/users/anha1/orgs","repos_url":"https://api.github.com/users/anha1/repos","events_url":"https://api.github.com/users/anha1/events{/privacy}","received_events_url":"https://api.github.com/users/anha1/received_events","type":"User","site_admin":false},"labels":[{"id":260079047,"url":"https://api.github.com/repos/tcdl/msb/labels/investigation","name":"investigation","color":"fad8c7","default":false}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":1,"created_at":"2016-08-22T09:43:18Z","updated_at":"2016-11-04T15:07:44Z","closed_at":null,"body":"Hello,\nPlease review changes in msb-java related to performance improvements and consider implementing related changes Node.js version of MSB.\n\nPull request: https://github.com/tcdl/msb-java/pull/340.\n\nChanges description (at least \"1\" and \"3\" are relevant for the Node.js MSB version):\n1. Requester no longer unsubscribes from a responses queue when not waiting for responses (leading to many subscribe/unsubscribe cycles). Instead, it subscribes to responses queue only once;\n2. String.format no longer used for msb-java debug messages;\n3. Incoming messages schema validation is disabled by default: this check introduces a lot of overhead for a pretty useless validation (see Postel's_Law);\n4. If incoming messages schema validation is enabled for a particular microservice, the JSON schema caching approach was improved so schema validation overhead was reduced.\n5. Heartbeat interval increased from 1s to 30s.\n"},"comment":{"url":"https://api.github.com/repos/tcdl/msb/issues/comments/258456668","html_url":"https://github.com/tcdl/msb/issues/115#issuecomment-258456668","issue_url":"https://api.github.com/repos/tcdl/msb/issues/115","id":258456668,"user":{"login":"jupiter","id":26949,"avatar_url":"https://avatars.githubusercontent.com/u/26949?v=3","gravatar_id":"","url":"https://api.github.com/users/jupiter","html_url":"https://github.com/jupiter","followers_url":"https://api.github.com/users/jupiter/followers","following_url":"https://api.github.com/users/jupiter/following{/other_user}","gists_url":"https://api.github.com/users/jupiter/gists{/gist_id}","starred_url":"https://api.github.com/users/jupiter/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jupiter/subscriptions","organizations_url":"https://api.github.com/users/jupiter/orgs","repos_url":"https://api.github.com/users/jupiter/repos","events_url":"https://api.github.com/users/jupiter/events{/privacy}","received_events_url":"https://api.github.com/users/jupiter/received_events","type":"User","site_admin":false},"created_at":"2016-11-04T15:07:44Z","updated_at":"2016-11-04T15:07:44Z","body":"1. Since unsubscribing only happens when there are no consumers, it wouldn't be happening when there is any concurrency. In Node we're only ever accessing the array of consumers on one thread, which means there is no added cost to check whether we have other consumers. I do realise that the cost to subscribe/unsubscribe cycles may not be justified by the marginal benefit of automatically cleaned up response topics, but perhaps this should be configurable.\r\n\r\n3. I think validation for incoming messages is in support of Postel's Law, i.e. \"assume that the network is filled with malevolent entities that will send in packets designed to have the worst possible effect\" - If we process messages that do not comply we risk failure of our services. \r\n"}}
{"actor":{"display_login":"jupiter"}}