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

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