{"action":"opened","issue":{"url":"https://api.github.com/repos/ozone-development/ozp-iwc/issues/330","labels_url":"https://api.github.com/repos/ozone-development/ozp-iwc/issues/330/labels{/name}","comments_url":"https://api.github.com/repos/ozone-development/ozp-iwc/issues/330/comments","events_url":"https://api.github.com/repos/ozone-development/ozp-iwc/issues/330/events","html_url":"https://github.com/ozone-development/ozp-iwc/issues/330","id":107213569,"number":330,"title":"Investigate shared web workers","user":{"login":"Kevin-K","id":7290455,"avatar_url":"https://avatars.githubusercontent.com/u/7290455?v=3","gravatar_id":"","url":"https://api.github.com/users/Kevin-K","html_url":"https://github.com/Kevin-K","followers_url":"https://api.github.com/users/Kevin-K/followers","following_url":"https://api.github.com/users/Kevin-K/following{/other_user}","gists_url":"https://api.github.com/users/Kevin-K/gists{/gist_id}","starred_url":"https://api.github.com/users/Kevin-K/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Kevin-K/subscriptions","organizations_url":"https://api.github.com/users/Kevin-K/orgs","repos_url":"https://api.github.com/users/Kevin-K/repos","events_url":"https://api.github.com/users/Kevin-K/events{/privacy}","received_events_url":"https://api.github.com/users/Kevin-K/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":0,"created_at":"2015-09-18T14:28:22Z","updated_at":"2015-09-18T14:28:22Z","closed_at":null,"body":"While  the IWC is designed to support CH/FF/IE, the localstorage link and complexity of distributed consensus are two bottlenecks on performance. Chrome and Firefox support shared webworkers http://caniuse.com/#feat=sharedworkers\r\n\r\nusing current the current implementation as a fallback for non-capable browsers, investigate the possibility of using shared web workers. Since it is a single script ran, the IWC bus will all be ran in one location (rather than the default: each client instance opens a bus instance) thus no need for a consensus. In addition the shared web worker would drop the need to write to local storage as the link between instances as all IWC clients will attach to the same bus, this should improve throughput and alleviate the issue of minimized & out of focus (a browser tab not in current display) IWC connections being [governed to a 1 write to local storage/second](http://blog.pivotal.io/labs/labs/chrome-and-firefox-throttle-settimeout-setinterval-in-inactive-tabs)."}}