Reading list #11

Yo! Welcome to another reading list 🖖🏽

Stuff I wrote

Blogs

To close off this section, here’s an excerpt from my book notes from The Missing ReadMe

Exponential backoff ((retry number)^2) is good to a certain point. In a distributed system scenario, if all clients experience a blip at the same time then use the same backoff strategy to retry, they’ll issue requests at the same time. This results in a thundering herd! To handle this, add jitter - the client adds a random, bounded amount of time to the backoff. This adds an element of randomness, thus reducing the likelihood of a stampede.

Not everything is supposed to be retried, sometimes it’s best to let the software crash and let a human trigger the retry. e.g. when writing data, executing some business process, or something with side-effects.

Podcasts

  • The author of Building Multi-Tenant SaaS Architectures on goto; book club.