Making retries safe with idempotent APIs
The Amazon Builder’s Library is a great set of deep dive papers into the challenges with modern systems. This post highlights some of the challenges that the retry pattern presents.
The paper, “Making retries safe with idempotent APIs, follows-up yesterday’s thread on the, “Timeouts, retries, and backoff with jitter” paper.
This one takes a much deeper dive into the challenges that a simple retry poses to an API. It’s all about balancing the customer experience with the systems’ stability & performance.
I call out a few more details in the Twitter thread below…
: https://aws.amazon.com/builders-library/making-retries-safe-with-idempotent-APIs/
this is a level 300 paper, digging a bit deeper than yesterday’s’ level 200
☁️ #cloud #devops @awscloud
yesterday’s thread is up at https://markn.ca/2021/timeouts-retries-and-backoff-with-jitter/
☁️ #cloud #devops
if you’re unfamiliar, in this context it means that you can run operations more than once and the results won’t change
more at https://en.wikipedia.org/wiki/Idempotence
☁️ #cloud #devops
basically, how can the backend service make sure that retry doesn’t end up being a duplicate or something worse
☁️ #cloud #devops
followed by, “a surprisingly large number of transient or random faults can be overcome by simply retrying the call”
☁️ #cloud #devops
it then moves on to a topic that isn’t discussed enough; reducing complexity
the author discusses API design & how @awscloud uses an identifier handled by the SDKs to manage retries
☁️ #cloud #devops
uses @awscloud EC2 as an example & this really helps drive some of these key points home
☁️ #cloud #devops
explores these challenges & explains how @awscloud looks at making reasonable trade offs to handle
☁️ #cloud #devops
however, these patterns & tips can help you replicate this pattern in your services to deliver a better customer experience
worth the to read
/ ☁️ #cloud #devops