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-টাও ভাবতে হবে