Saga Pattern
সাগা প্যাটার্ন
লম্বা distributed transaction-কে local transaction-এর সিরিজে ভাগ করা — ব্যর্থ হলে compensation চেইনে পিছোনো।
also: saga
T1 book_flight ✓ → T2 book_hotel ✗
→ C1 cancel_flight ← compensation chain, উল্টো ক্রমে
- 2PC-র জায়গায় চলে যেখানে cross-service lock অসম্ভব — প্রতিটা T local ACID, মোটটা eventual
- Isolation-এর ছায়া নেই: T2 চলাকালীন T1-এর effect দৃশ্যমান — semantic lock, commutative update, version file (Garcia-Molina 1987)-ই মোকাবিলা
- Choreography (event-driven, কোনো boss নেই) বনাম orchestration (এক coordinator state machine) — service কম হলে choreography, logic জটিল হলে orchestration