{"action":"opened","issue":{"url":"https://api.github.com/repos/slightlyoff/BackgroundSync/issues/59","labels_url":"https://api.github.com/repos/slightlyoff/BackgroundSync/issues/59/labels{/name}","comments_url":"https://api.github.com/repos/slightlyoff/BackgroundSync/issues/59/comments","events_url":"https://api.github.com/repos/slightlyoff/BackgroundSync/issues/59/events","html_url":"https://github.com/slightlyoff/BackgroundSync/issues/59","id":60433068,"number":59,"title":"More opportunities for BG sync to outperform self-made solutions (e.g. robustness of onsync)","user":{"login":"KenjiBaheux","id":6354698,"avatar_url":"https://avatars.githubusercontent.com/u/6354698?v=3","gravatar_id":"","url":"https://api.github.com/users/KenjiBaheux","html_url":"https://github.com/KenjiBaheux","followers_url":"https://api.github.com/users/KenjiBaheux/followers","following_url":"https://api.github.com/users/KenjiBaheux/following{/other_user}","gists_url":"https://api.github.com/users/KenjiBaheux/gists{/gist_id}","starred_url":"https://api.github.com/users/KenjiBaheux/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/KenjiBaheux/subscriptions","organizations_url":"https://api.github.com/users/KenjiBaheux/orgs","repos_url":"https://api.github.com/users/KenjiBaheux/repos","events_url":"https://api.github.com/users/KenjiBaheux/events{/privacy}","received_events_url":"https://api.github.com/users/KenjiBaheux/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/slightlyoff/BackgroundSync/labels/question","name":"question","color":"cc317c"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":0,"created_at":"2015-03-10T00:31:42Z","updated_at":"2015-03-10T00:31:42Z","closed_at":null,"body":"Here is one thing that came out while talking to folks interested in this API.\r\n\r\nIgnoring BG sync's ability to outrun the life of the web app, these folks had implemented something similar to \"background sync\".\r\n\r\nWhen offline, they let their users perform some basic operations in their web app (e.g. delete an item). Ideally, when the user comes back online these operations are synchronized with the server. \r\n\r\nIn practice, they apply an exponential backoff to the synchronization operation. This helps them deal with various conditions: from offline (despite say navigator.online being true) to kind of online and up to server issues (e.g. 500).\r\n\r\nAre there opportunities for bg sync to do a better job here?\r\n 1. take care of the exponential backoff strategy => I think this is already on the map since it's mentioned in the explainer.\r\n 2. have onsync be a more robust signal that the user is truly back online with optionally some extra guarantees about the quality of the connection (e.g. not \"kind of online\") and the reachability of specific endpoints. This seems quite desirable given that it could make bg sync even more power friendly.\r\n\r\nPerhaps, a lot of that might simply be UA optimizations. Then, depending on what we learn, we might want to look into offering more flexibility in v2.\r\n\r\nThoughts? \r\n"}}