Nima Saga namunasi
Voqealar ketma-ketligi orqali taqsimlangan tranzaksiyalar
Saga namunasi — muvaffaqiyatsizliklarda kompensatsiya qiluvchan harakatlar bilan mahalliy tranzaksiyalar ketma-ketligi orqali taqsimlangan tranzaksiyalarni boshqarish uchun namuna.
Muammo
- Mikroservislar o'z ma'lumotlar bazalariga ega
- Klassik ACID tranzaksiyalari mumkin emas
- Xizmatlar o'rtasida izchillik kerak
Saga turlari
- Xoreografiya — xizmatlar voqealar almashadi
- Orkestratsiya — markaziy koordinator boshqaradi
Xoreografiya
- Xizmatlar bir-birining voqealariga obuna bo'ladi
- Har bir xizmat natijasini e'lon qiladi
- Yagona nosozlik nuqtasi yo'q
- Holatni kuzatish qiyinroq
Orkestratsiya
- Saga koordinatori oqimni boshqaradi
- Xizmatlarni ketma-ket chaqiradi
- Kuzatish va debug qilish osonroq
- Yagona nosozlik nuqtasi xavfi
Kompensatsiya qiluvchi tranzaksiyalar
- Yakunlangan qadamlarni bekor qilish
- Idempotent bo'lishi kerak
- Semantik bekor qilish (rollback emas)
- Misol: bekor qilish o'rniga to'lovni qaytarish