Makes retries more explicit by using terms like retry and uncrecoverable.
Adds a backoff between retries to prevent hammering the service with requests, and allowing time for the service to recover.
Adds randomness to the backoff, so that if we have multiple instances of this code running, it reduces the likelihood that they'll all retry requests at the same time (and again hammering the service).
Changes attempts to 5 and adds a max backoff delay of 5s (with the new backoff, this will end up nearly equivalent time-wise to the current code)
retry
anduncrecoverable
.5
and adds a max backoff delay of 5s (with the new backoff, this will end up nearly equivalent time-wise to the current code)