Foundationপ্রথম নীতি থেকে
LEVEL 9 · Distributed Systems

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 মানবে