{"action":"created","issue":{"url":"https://api.github.com/repos/bakape/meguca/issues/145","labels_url":"https://api.github.com/repos/bakape/meguca/issues/145/labels{/name}","comments_url":"https://api.github.com/repos/bakape/meguca/issues/145/comments","events_url":"https://api.github.com/repos/bakape/meguca/issues/145/events","html_url":"https://github.com/bakape/meguca/issues/145","id":55359725,"number":145,"title":"Abstract and centralise client redis access","user":{"login":"bakape","id":7851952,"avatar_url":"https://avatars.githubusercontent.com/u/7851952?v=3","gravatar_id":"","url":"https://api.github.com/users/bakape","html_url":"https://github.com/bakape","followers_url":"https://api.github.com/users/bakape/followers","following_url":"https://api.github.com/users/bakape/following{/other_user}","gists_url":"https://api.github.com/users/bakape/gists{/gist_id}","starred_url":"https://api.github.com/users/bakape/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bakape/subscriptions","organizations_url":"https://api.github.com/users/bakape/orgs","repos_url":"https://api.github.com/users/bakape/repos","events_url":"https://api.github.com/users/bakape/events{/privacy}","received_events_url":"https://api.github.com/users/bakape/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/bakape/meguca/labels/optimisation","name":"optimisation","color":"bfe5bf"},{"url":"https://api.github.com/repos/bakape/meguca/labels/wontfix","name":"wontfix","color":"d4c5f9"}],"state":"closed","locked":false,"assignee":null,"milestone":null,"comments":2,"created_at":"2015-01-24T05:32:43Z","updated_at":"2015-06-19T09:05:21Z","closed_at":"2015-06-19T09:05:20Z","body":"Currently each open client browser tab gets their own dedicated Yakusoku database controller. Each Yakusoku then establishes it's own private redis connection and spawns an entire array of redis subscriptions. This is not optimal and not scalable at all. Ideally a middleman layer between Okyaku and Yakusoku should exist. Functionality:\r\n* Establishes a single Yakusoku per thread (front page counts as a thread)\r\n* On client synchronisation check, if a Yakusoku for the specific thread exists\r\n  * If yes, bind to to that Yakusoku\r\n  * If not, create new Yakusoku\r\n* Dynamically disconnect child Yakusoku objects as needed"},"comment":{"url":"https://api.github.com/repos/bakape/meguca/issues/comments/113439060","html_url":"https://github.com/bakape/meguca/issues/145#issuecomment-113439060","issue_url":"https://api.github.com/repos/bakape/meguca/issues/145","id":113439060,"user":{"login":"bakape","id":7851952,"avatar_url":"https://avatars.githubusercontent.com/u/7851952?v=3","gravatar_id":"","url":"https://api.github.com/users/bakape","html_url":"https://github.com/bakape","followers_url":"https://api.github.com/users/bakape/followers","following_url":"https://api.github.com/users/bakape/following{/other_user}","gists_url":"https://api.github.com/users/bakape/gists{/gist_id}","starred_url":"https://api.github.com/users/bakape/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bakape/subscriptions","organizations_url":"https://api.github.com/users/bakape/orgs","repos_url":"https://api.github.com/users/bakape/repos","events_url":"https://api.github.com/users/bakape/events{/privacy}","received_events_url":"https://api.github.com/users/bakape/received_events","type":"User","site_admin":false},"created_at":"2015-06-19T09:05:20Z","updated_at":"2015-06-19T09:05:20Z","body":"Impractical with how individualised the websocket connections are in progress states. Catching up would become a huge issue and likely outweigh the benefits. "}}