Designing idempotency for services is really easy to over engineer.

The design pattern matters more than the specific tech:

1. Generate a unique id (e.g. v4 UUID) and attach it to every call
2. Handle failure gracefully with an exponential backoff + jitter
3. Record both the attempt AND the complete result
4. Check records before execution

This is not to say doing this is easy and that there aren't contexts will sway you on specific choices of tech. But learn the pattern first.

0

If you have a fediverse account, you can quote this note from your own instance. Search https://mastodon.social/users/raiderrobert/statuses/115537561166224713 on your instance and quote it. (Note that quoting is not supported in Mastodon.)