|
|
|
|
|
by NovemberWhiskey
32 days ago
|
|
The real problem is that sticking an idempotency key onto an operation doesn’t make it idempotent. It may improve efficiency where a protocol doesn’t assure exactly-once delivery of messages, but it cannot help you with problems other than deduplication of identical messages. Creating a payment is not an idempotent operation. If the economics of the operation can differ when the “idempotency” key remains the same then you’ve just created a foot-gun in your API. You can document that you’re going to ignore “duplicate” requests that share an idempotency key but that’s just user-hostile. The system as a whole is broken as designed. |
|