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

Compensation Transaction

কম্পেনসেশন ট্রানজেকশন

Saga-র undo ধাপ — আগের কাজ ঘুরিয়ে দেওয়া নয়, business semantics-এ বাতিল (refund, release, cancel)।

also: compensating-action, compensating-transaction

T2: reserve_stock(sku=42, qty=2)     ✓
C2: release_stock(sku=42, qty=2)    ← inverse নয়, semantic inverse
  • চারটা গুণ লাগবেই: idempotent (retry-তে দ্বিগুণ release নয়), retriable (fail হলে আবার), commutativity-friendly, আর failure-free না হলেও escalation path থাকবে
  • Saga theory-র শব্দ: T-গুলো compensatable, একটা pivot point পার হলে retriable — pivot-এর আগে ভাঙলে পিছোতে হয়, পরে ভাঙলে সামনে গিয়ে সারতে হয়
  • Failed compensation = manual intervention queue — design-এ ওই dashboard-টাও ভাবতে হবে