İşlem yönetimi bağlamında saga nedir?
sobes.tech yapay zeka
AI'dan gelen yanıt
Saga, mikroservis mimarisi içinde dağıtılmış işlemleri yönetmek için kullanılan bir desenidir. Her biri bir hizmet kapsamında verileri güncelleyen bir dizi yerel işlemi temsil eder.
Eğer dizideki herhangi bir yerel işlem başarısız olursa, saga, daha önce başarıyla tamamlanan yerel işlemler tarafından yapılan değişiklikleri geri almak için telafi işlemleri seti gerçekleştirir ve böylece sistem bütünlüğünü yeniden sağlar.
Saga uygulaması için iki temel yaklaşım vardır:
-
Koreografi: Servisler doğrudan olaylar aracılığıyla iletişim kurar, merkezi bir koordinatöre dayanmazlar. Her servis, diğer servisler tarafından üretilen olayları dinler ve kendi yerel işlemlerini gerçekleştirir ve/veya yanıt olarak yeni olaylar yayınlar.
- Avantajlar: Az sayıda servis için uygulanması daha basittir, tek bir arıza noktası yoktur.
- Dezavantajlar: İş akışını ve olası döngüsel bağımlılıkları takip etmek zordur, hata ayıklama daha karmaşıktır.
-
Orkestrasyon: Merkezi bir orkestratör (saga orkestratörü) yerel işlemlerin sırasını yönetir. Orkestratör, servislerin yerel işlemlerini gerçekleştirmeleri için komutlar gönderir ve servislerden gelen olaylara (başarı/hata) yanıt verir, böylece sonraki adım veya telafi işlemlerine karar verir.
- Avantajlar: Sorumlulukların netliği, iş akışını takip ve hata ayıklama kolaylığı, karmaşık mantıkların uygulanması daha basittir.
- Dezavantajlar: Orkestratör, potansiyel tek arıza noktasıdır, saga durumunu yönetmek için ek mantık gerektirir.
Uygulama seçimi, iş sürecinin karmaşıklığına, katılan servislerin sayısına ve yönetim ve gözlemlenebilirlik gereksinimlerine bağlıdır. Saga, klasik anlamda atomiklik (ACID) sağlamaz, ancak eventual tutarlılığı garanti eder.