Idempotency Key
আইডেম্পোটেন্সি কি
Client-দেওয়া unique key — retry-তে একই request দুইবার effect করবে না; server duplicate চিনে আগের result ফেরত দেয়।
also: request-id
POST /payments
Idempotency-Key: 4f7c2e10-... ← retry-তেও একই key
server: INSERT INTO results(key, response) ... ON CONFLICT(key) DO NOTHING
- At-least-once delivery + idempotency key = user-অভিজ্ঞতায় exactly-once; বাস্তবে exactly-once effect, delivery থাকে at-least-once-ই
- Race window বন্ধ করতে unique constraint / atomic insert — check-then- write দুই step-এ duplicate ঢুকে যায়
- TTL ভাবুন: key কতদিন মনে থাকবে? Payment API-তে ২৪ ঘণ্টা সাধারণ; মেয়াদ পরের retry-তে double-charge — client-ও key discipline মানবে