APIs are constantly dealing with failures - third-party errors, crashes, network issues. Retries are a common recovery strategy, but they are only safe if the API is idempotent. What does it actually mean for an API to be idempotent though? How do you approach implementing an idempotency strategy? …