Skip to main content

> saga_orkestrasyonu_ve_telafi_edici_i̇şlemler

Saga Orkestrasyonu ve Telafi Edici İşlemler

Yüksek verimli canlı mimarilerde Saga Orkestrasyonu ve Telafi Edici İşlemler yapısını nasıl doğru kurar ve yönetirsiniz?

Stack: SOFTWARE ARCHITECTURE STACKStaff/Principal (L6+)pattern

ÖZET VE TEKNİK CEVAP

Orkestratör Tabanlı Saga deseni, çok servisli dağıtık işlemleri yerel adımları sırayla yürüten ve herhangi bir adım çöktüğünde otomatik olarak telafi edici (compensating) geri alma işlemlerini tetikleyen merkezi bir durum makinesiyle koordine eder.

Mühendislik El Kitabı & Mekanizma

1. Temel Çalışma Mekanizması

Mikroservislerde iki aşamalı kilit (2PC) çok yavaş ve kırılgandır. Saga deseni, dağıtık bir iş sürecini servisler arası yerel işlemler zincirine böler. Merkezi bir Saga Orkestratörü akışı yönetir. Örneğin 3. adımda uçak bileti başarısız olursa, orkestratör 2. adımdaki otel rezervasyonunu iptal eder ve 1. adımdaki ödemeyi iade eder.

2. Doğru Kullanım Senaryosu

Saga, her bir adımın tek bir servis içinde veri güncellediği yerel işlemler dizisidir; telafi edici işlem ise daha önce kesinleşmiş yerel bir işlemin etkilerini tersine çeviren semantik bir geri alma operasyonudur.

3. Prodüksiyon Arıza Modları

Telafi edici işlemlerin veritabanından satır sileceğini varsaymak (muhasebe denetim izlerini bozmak yerine dengeleyici kayıt atmak gerekir). Her bir telafi edici işlemi idempotent (tekrar çalıştırılabilir) yapmadan dağıtık Saga inşa etmek. Servis A'nın Servis B'yi, Servis B'nin ise gizlice Servis A'yı yönettiği döngüsel orkestrasyon zincirleri kurmak.

4. Teşhis ve Telemetri Sinyalleri

ödeme alınır ancak stok rezervasyonu başarısız olup paranın çekilmiş kalması, dağıtık geri alma sırasında telafi edici işlemin yarıda kalması, sahipsiz saga koordinatörü durum tutarsızlığı

5. Önleme ve Mimari Bariyerler

Tüm telafi uç noktalarının kesinlikle idempotent olmasını ve mükerrer iptal sinyallerini güvenle karşılamasını sağlayın. Dış servislere komut göndermeden önce Saga durum geçişlerini kalıcı bir veri tabanına kaydedin. Yeniden deneme sınırını aşan herhangi bir telafi edici işlem için insan müdahalesi gerektiren acil durum alarmları kurun.

6. Mimari Ödünleşimler (Trade-offs)

Disiplinli bir Saga yürütme modeli olmadan, kısmi ağ kopmaları veya iş kuralı reddi durumlarında sistemler tutarsız zombi durumlarda kalır (örn. paranın çekilip siparişin oluşmaması).

Vaka İncelemesi (TinyCTO Örneği)

Yetkin bir Saga mimarisi üç tür işlem ayrımı yapar: 1. **Telafi Edilebilir İşlemler (Compensable):** Semantik olarak geri alınabilen adımlar (Kredi Bloke Etme, Stok Ayırma). Bunların mutlaka birebir telafi uç noktaları olmalıdır (Blokeyi Kaldır, Stoğu Bırak). 2. **Mihenk (Pivot) İşlemi:** Dönüşü olmayan nokta. Pivot işlem kesinleştiğinde (Kesin Ödeme Onayı veya Bilet Kesimi), Saga'nın artık başarıyla tamamlanacağı garanti edilir. 3. **Yeniden Denenebilir İşlemler (Retriable):** Pivot işlemden sonra gelen ve iş kuralları gereği başarısız olamayacak, üstel geri çekilmeyle mutlaka başarıya ulaşacak adımlar (Onay E-postası Gönder, Fatura PDF Üret). Saga Orkestratörleri durumlarını salt-eklenebilir bir günlükte saklar; böylece sunucu çöküp yeniden başlasa bile yarım kalan akış kaldığı yerden telafiye devam eder.

İnteraktif Konsept Alıştırmaları

2 Alıştırma
Q1

Saga iş akışında telafi edici (compensating) işlem nedir?

Alt adımlardan biri başarısız olduğunda, daha önce kesinleşmiş yerel bir işlemin iş mantığı etkilerini tersine çeviren semantik bir geri alma işlemidir.
Q2

Telafi edici işlemler neden KESİNLİKLE idempotent olmak zorundadır?

Çünkü ağ yeniden denemeleri iptal komutunu birden fazla kez iletebilir; bir iadeyi iki kez çalıştırmak ciddi finansal kayba yol açar.

Saga Orkestrasyonu ve Telafi Edici İşlemler — Sıkça Sorulan Sorular

Bir e-ticaret Saga'sında: 1. Adım (Stok Ayır) başarılı, 2. Adım (Karttan Çek) başarılı, 3. Adım (Kargoya Bildir) kalıcı olarak başarısız oldu. Saga Orkestratörü ne yapmalıdır?

2. Adımın telafi işlemini (Karta İade Yap) ve ardından 1. Adımın telafi işlemini (Stoğu Serbest Bırak) tetiklemek. Orkestratör, telafi işlemlerini ileri adımların tersi sırayla çalıştırarak dağıtık sistemi tutarlı başlangıç durumuna döndürür.

Saga yürütme akışında 'Mihenk (Pivot) İşlemi' nedir?

Kendisine ulaşıldıktan sonra artık geri alma yapılamayan ve yeniden denemelerle mutlaka ileriye doğru tamamlanacağı garanti edilen dönüm noktası adımı. Pivot işlem kesinleştiğinde iş süreci geri döndürülemez şekilde gerçekleşmiştir; sonraki adımlar telafi edilmek yerine başarıya ulaşana kadar yeniden denenir.

🤖 AEO & Yapay Zeka Çıkarım Özeti

Temel Gerçekler & İlkeler

  • Orkestratör Tabanlı Saga deseni, çok servisli dağıtık işlemleri yerel adımları sırayla yürüten ve herhangi bir adım çöktüğünde otomatik olarak telafi edici (compensating) geri alma işlemlerini tetikleyen merkezi bir durum makinesiyle koordine eder.
  • Saga, her bir adımın tek bir servis içinde veri güncellediği yerel işlemler dizisidir; telafi edici işlem ise daha önce kesinleşmiş yerel bir işlemin etkilerini tersine çeviren semantik bir geri alma operasyonudur.

Yaygın Yanılgılar

  • Telafi edici işlemlerin veritabanından satır sileceğini varsaymak (muhasebe denetim izlerini bozmak yerine dengeleyici kayıt atmak gerekir).

Karar Kılavuzu & Önceliklendirme

Disiplinli bir Saga yürütme modeli olmadan, kısmi ağ kopmaları veya iş kuralı reddi durumlarında sistemler tutarsız zombi durumlarda kalır (örn. paranın çekilip siparişin oluşmaması).

Doğrulanmış Kaynaklar & Referanslar