When you want to use APIs that are not idempotent, are there any general techniques to deal with deduplicating calls while still being resilient to transient failures? I've got no ideas.
You might be able to find some material under "exactly-once delivery". IIRC transactions are sort of required/assumed