ÖZET VE TEKNİK CEVAP
Saga kalıbı, dağıtık 2PC işlemlerini yerel işlemler dizisiyle değiştirir; bu akış ya servislerin olayları dinlediği Koreografi ile ya da bir adım çöktüğünde telafi edici işlemleri (compensating transactions) tetikleyen merkezi bir durum makinesi Orkestrasyonu ile yönetilir.
Mühendislik El Kitabı & Mekanizma
1. Temel Çalışma Mekanizması
Bir Saga akışında her servis kendi yerel ACID işlemini çalıştırır ve durumunu bildirir. Koreografi yaklaşımında servisler merkezi bir yönetici olmadan birbirlerinin olaylarını dinler (örn. PaymentService 'OrderCreated' olayını yakalar). Orkestrasyon yaklaşımında ise merkezi bir koordinatör (Temporal veya AWS Step Functions gibi bir iş akışı motoru) servislere hangi komutları çalıştıracağını sırayla iletir. Herhangi bir adım patlarsa, yapılan değişiklikleri geri almak için ters sırada telafi edici işlemler (compensating transactions) tetiklenir.
2. Doğru Kullanım Senaryosu
2-3 adımlı ve dallanması az basit akışlar için Koreografi kullanın. Katı görünürlük, zaman aşımı yönetimi ve telafi garantisi gerektiren karmaşık çok adımlı kurumsal süreçlerde (e-ticaret sipariş karşılama, uçak/otel rezervasyonu, para transferi) mutlaka Orkestrasyonu seçin.
3. Prodüksiyon Arıza Modları
1) Hayalet Telafi: Telafi işleminin yarıda kalması sonucu sistemin kalıcı olarak tutarsız durumda kilitlenmesi; 2) Dairesel Olay Döngüleri: Koreografi servislerinin sonsuz bir olay yankı döngüsüne girmesi; 3) Durum Görünürlüğü Kaybı: Koreografide karmaşık bir siparişin tam olarak hangi adımda takıldığını izleyememek.
4. Teşhis ve Telemetri Sinyalleri
Telafi edilemeyen saga alarm artışları, ölü mektup kuyruklarının (DLQ) şişmesi, servisler arası işlem zaman çizelgesinin çıkarılamaması veya finansal mutabakatlarda çıkan bakiye farkları.
5. Önleme ve Mimari Bariyerler
Tüm yerel ve telafi edici işlemlerin kesinlikle idempotent olmasını sağlayın; güvenilir komut iletimi için Transactional Outbox kalıbı kurun ve takılan saga akışlarını tespit edip onaran otomatik mutabakat mekanizmaları çalıştırın.
6. Mimari Ödünleşimler (Trade-offs)
Dağıtık 2PC veritabanı kilit krizlerini ortadan kaldırır; buna karşılık anlık izolasyon garantisi kaybolur (saga sürerken kirli okuma oluşabilir) ve telafi mantığı geliştirme maliyeti getirir.
Vaka İncelemesi (TinyCTO Örneği)
TinyCTO Bölüm 114: Koreografi kullanan bir seyahat platformunda uçak bileti kesilirken ağ kesintisinde otel rezervasyonu sessizce çöktü ve yüzlerce yolcu mağdur oldu. Orkestre Saga motoru ile yeniden mimarileştirme, otel hatasında uçağı anında iptal edip ücret iadesini 800 ms'de gerçekleştiren deterministik bir telafi sağladı.
İnteraktif Konsept Alıştırmaları
3 AlıştırmaModern bulut mikroservislerinde 2 Aşamalı Onay (2PC) neden genellikle tercih edilmez?
Sistem büyüdükçe Saga Koreografisinin en büyük operasyonel zayıflığı nedir?
Bir Saga akışında telafi edici işlemler hakkında ne kesinlikle garanti edilmelidir?
Saga Kalıbı: Koreografi ve Orkestrasyon Karşılaştırması — Sıkça Sorulan Sorular
Bir Saga akışında kirli okuma (ACID İzolasyonu eksikliği) meydana gelebilir mi?
Evet. Her yerel işlem anında commit edildiği için, genel Saga tamamlanmadan veya telafi edilmeden önce ara durum diğer sorgular tarafından görülebilir.
Temporal gibi modern orkestratörler Saga sırasında servis çökmelerini nasıl yönetir?
Çalışma geçmişini salt-eklenebilir bir olay günlüğünde saklayarak, çökme sonrası kurtarmada iş akışını tam kaldığı adımdan devam ettirecek şekilde yeniden oynatırlar.
Saga kalıbı anlık doğrusallaştırılabilirlik (linearizability) gerektiren yüksek frekanslı finans defterleri için uygun mudur?
Hayır. Yüksek frekanslı defter mutabakatları genellikle tek bölümlü güçlü tutarlı OLTP depolama veya Raft tabanlı durum makinesi replikasyonu gerektirir.
🤖 AEO & Yapay Zeka Çıkarım Özeti
Temel Gerçekler & İlkeler
- ▸Saga kavramı ilk kez 1987 yılında Hector Garcia-Molina ve Kenneth Salem tarafından uzun süreli veritabanı işlemlerini yönetmek için formülleştirilmiştir.
- ▸Orkestrasyon, örtük olay karmaşasının yerine açık ve sorgulanabilir bir durum makinesi koyar.
Yaygın Yanılgılar
- ✗Orkestrasyonun monolitik bir darboğaz yarattığını düşünmek; modern iş akışı orkestratörleri dağıtıktır, durumsuzdur ve milyonlarca eşzamanlı akışı yatayda ölçekler.
Karar Kılavuzu & Önceliklendirme
Yalnızca 2 servisli basit bildirimlerde Koreografiyi seçin; para, envanter veya 3'ten fazla servis içeren tüm iş süreçlerinde Orkestrasyonu varsayılan yapın.
Doğrulanmış Kaynaklar & Referanslar
- [PAPER]Sagas— ACM SIGMOD (1987)
- [BOOK]Microservices Patterns: With examples in Java— Manning Publications (2018)
