{"action":"opened","issue":{"url":"https://api.github.com/repos/sphereio/sphere-node-sdk/issues/170","repository_url":"https://api.github.com/repos/sphereio/sphere-node-sdk","labels_url":"https://api.github.com/repos/sphereio/sphere-node-sdk/issues/170/labels{/name}","comments_url":"https://api.github.com/repos/sphereio/sphere-node-sdk/issues/170/comments","events_url":"https://api.github.com/repos/sphereio/sphere-node-sdk/issues/170/events","html_url":"https://github.com/sphereio/sphere-node-sdk/issues/170","id":183353249,"number":170,"title":"Be resilent against network level errors","user":{"login":"nkuehn","id":4006139,"avatar_url":"https://avatars.githubusercontent.com/u/4006139?v=3","gravatar_id":"","url":"https://api.github.com/users/nkuehn","html_url":"https://github.com/nkuehn","followers_url":"https://api.github.com/users/nkuehn/followers","following_url":"https://api.github.com/users/nkuehn/following{/other_user}","gists_url":"https://api.github.com/users/nkuehn/gists{/gist_id}","starred_url":"https://api.github.com/users/nkuehn/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nkuehn/subscriptions","organizations_url":"https://api.github.com/users/nkuehn/orgs","repos_url":"https://api.github.com/users/nkuehn/repos","events_url":"https://api.github.com/users/nkuehn/events{/privacy}","received_events_url":"https://api.github.com/users/nkuehn/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/sphereio/sphere-node-sdk/labels/enhancement","name":"enhancement","color":"84b6eb"},{"url":"https://api.github.com/repos/sphereio/sphere-node-sdk/labels/feature","name":"feature","color":"5319e7"}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":0,"created_at":"2016-10-17T08:21:18Z","updated_at":"2016-10-17T08:21:18Z","closed_at":null,"body":"### Expected behavior\r\nThe Network ist not reliable.  commercetools is a distributed system.  All tooling needs take that into account and be resilent. SDKs are meant to provide the functionality that every implementation needs so it's not repeated..  \r\n\r\nSpecifically: Fine grained control over retry behavior should be offered to implementing tools (e.g. our CLIs) so that not everybody is doing the same errors gain.   Focus areas (need to be individually controllable)\r\n* network level fails (socket hangup, mostly due to lost packet, dropped connection etc)\r\n* network timeouts\r\n* retry on concurrent\r\n\r\n### Actual behavior\r\nAll calls, e.g. in a big bulk import, fail hard e.g. on socket hang up.  This is OK as a default, but it's not usable in production bulk imports / syncs etc.  \r\n\r\n### Steps to reproduce the behavior\r\nTry any bigger thing over WiFi, e.g. category sync, product-csv-sync etc. pp.   Fail, try again. Fail, try again. \r\n\r\n"}}
{"actor":{"display_login":"nkuehn"}}