Comment by tregoning

13 hours ago

https://en.wikipedia.org/wiki/Exponential_backoff

Yes, exponential back off and jitter are the first things to work on, and good if you don’t have a better signal (like loss of network).

Also, a simple signal status server or queue system helps to keep global state such that everyone doesn’t retry all at once.

If you have a central error rate server you can skip your retry based on the error rate (100% error rate, don’t retry, etc).

https://devblogs.microsoft.com/oldnewthing/20051107-20/?p=33...

  • Title is "Take it easy on the automatic retries"

    Microsoft breaks all Old New Thing links every few years so it's necessary to post the title so the right post can still be found.

  • This is trading a good developer experience for a bad user experience. There are situations where it makes sense to force manual retry, but there's no reason to apply one universal rule to all possible situations. Lack of considering nuance for your situation is just intellectual laziness.

    • My point was that just throwing exponential backoffs at the retry problem is not a magic solution

      I don't follow how being cautious about avoiding multiplicative layers of backoffs is trading a good developer experience for a bad user experience. The described situation is an awful user experience. Simply adding a retry and calling it a day sounds like the easy developer experience at the expense of the user experience

      3 replies →