Sistem Entegrasyonlarında Dağıtık İşlemler ve Saga Deseni
Dağıtık sistemlerde veri tutarlılığını korumak için Saga deseninin orkestrasyon ve koreografi yöntemleriyle nasıl uygulanacağını inceliyoruz.

Dağıtık Sistemlerde Veri Tutarlılığı ve Zorlukları
Modern yazılım mimarilerinde monolitik yapılardan mikroservis tabanlı çözümlere geçiş, iş süreçlerinin farklı servisler arasında bölünmesine neden olur. Özellikle işletmelerin Sistem Entegrasyonları süreçlerinde, ERP modülleri, muhasebe yazılımları, ödeme sistemleri ve üçüncü taraf uygulamalar arasında çok aşamalı işlemler yürütülür. Bu tür dağıtık işlemler sırasında en büyük zorluk, geleneksel veritabanı işlemlerindeki (ACID) bütünlük garantisinin ağ sınırları ötesinde doğrudan uygulanamamasıdır.
Ağ kopmaları, servis kesintileri veya zaman aşımı hataları gibi senaryolarda, bir işlemin ilk adımı başarıyla tamamlanıp sonraki adımda hata alınması durumunda sistemde tutarsızlıklar (orphaned data) oluşabilir. İşletmelerin finansal ve operasyonel verilerinin güvenilir bir şekilde akması için Sistem Entegrasyonları katmanında gelişmiş desenlerin benimsenmesi gerekir.
Saga Deseni Nedir?
Saga deseni, dağıtık mimarilerde veri tutarlılığı sağlamak amacıyla kullanılan bir tasarım desenidir. Bir Saga, bir dizi yerel işlemden (local transaction) oluşur. Her bir yerel işlem, kendi servisindeki veritabanını günceller ve bir sonraki adımı tetikleyen bir olay (event) yayınlar veya mesaj gönderir.
Eğer bir adım başarısız olursa, Saga deseni daha önce başarıyla tamamlanmış adımların etkilerini tersine çeviren telafi edici işlemler (compensating transactions) çalıştırır. Bu yaklaşım, uzun süren dağıtık işlemler boyunca katı (strict) kilitler (locks) kullanmak yerine nihai tutarlılık (eventual consistency) modelini benimser.
Saga Uygulama Yaklaşımları: Orkestrasyon ve Koreografi
Saga desenini mimaride konumlandırırken iki temel yaklaşım öne çıkar:
1. Orkestrasyon (Orchestration)
Merkezi bir orkestratör (saga manager veya coordinator) bileşen, tüm adımların sırasını ve akışını yönetir. Hangi servisin ne zaman çağrılacağını bu merkezi yapı bilir ve hata durumunda telafi işlemlerini tetikler.
- Avantajları: Karmaşık iş akışlarında kontrolün tek bir yerde olması, akışın izlenmesini ve hata ayıklamayı kolaylaştırır. Orkestrasyon yaklaşımı, servisler arası sıkı bağımlılığı azaltarak iş mantığının merkezi olarak yönetilmesine olanak tanır.
- Dezavantajları: Merkezi bileşen tek hata noktası (single point of failure) olma riskini taşır; bu nedenle orkestratörün yüksek erişilebilirliğe sahip olması gerekir.
2. Koreografi (Choreography)
Merkezi bir kontrolcü yoktur. Servisler birbirlerinin yayınladığı olayları dinler (event-driven) ve kendi yerel işlemlerini buna göre gerçekleştirir.
- Avantajları: Servisler tamamen bağımsızdır ve merkezi bir yöneticiye ihtiyaç duymaz.
- Dezavantajları: İş akışı büyüdükçe hangi servisin kiminle haberleştiğini takip etmek zorlaşır ve döngüsel bağımlılık riski artar.
Adım Adım Entegrasyon Sürecinde Uygulama Rehberi
Çok aşamalı bir finansal operasyonu Sistem Entegrasyonları altyapısında güvenle yürütmek için şu adımlar izlenmelidir:
- İş Akışının Modellenmesi: Sürece dahil olan tüm servislerin (örneğin sipariş, stok, faturalama ve ödeme) ve bunların başarısızlık senaryolarının haritalandırılması.
- Telafi Edici İşlemlerin Yazılması: Her adım için "geri al" mantığının kodlanması. Örneğin, ödeme alındıktan sonra stok düşme aşamasında hata alınırsa, ödemenin iade edilmesi için gereken API çağrısının hazırlanması.
- İletişim Altyapısının Kurulması: Servisler arası güvenilir veri akışı için mesaj kuyruklarının veya olay tabanlı broker sistemlerinin yapılandırılması.
- İzlenebilirlik ve Loglama: Dağıtık izleme (distributed tracing) araçları kullanılarak, Saga adımlarının durumunun uçtan uca takip edilmesi.
Varsayımsal Senaryo: Çok Aşamalı E-Ticaret ve Ödeme Entegrasyonu
Bu varsayımsal senaryoda, uluslararası bir e-ticaret platformunun sipariş yönetim sistemi ele alınmaktadır. Müşteri bir ürün satın aldığında, Sistem Entegrasyonları katmanı devreye girerek sırasıyla sipariş servisi, stok yönetimi, üçüncü taraf ödeme ağ geçidi ve harici ERP modülü ile haberleşir. İlk aşamada sipariş 'oluşturuldu' statüsüne alınır ve stok servisinden ilgili ürün rezerve edilir. Ancak ödeme servisi, banka altyapısından zaman aşımı (timeout) hatası döndüğünde kritik bir karar anı oluşur. Bu senaryoda katı veritabanı kilitleri bulunmadığından, sistem nihai tutarlılık prensibiyle çalışmak zorundadır.
Hata tespiti yapıldığı anda orkestrasyon yöneticisi otomatik olarak telafi işlemlerini zincirleme şekilde tetikler. İlk olarak rezerve edilen ürünler stok havuzuna geri bırakılır ve ardından sipariş kaydı iptal edilmiş olarak güncellenir. Bu yaklaşım, sistemin bütününde kilitlenmeleri önlerken, harici servis gecikmelerinin tüm mimariyi felç etmesini engeller. Ticari operasyonlar sırasında yaşanan ağ dalgalanmaları veya anlık API kesintileri, bu sayede müşteri deneyimini bozmadan arka planda yönetilir. Sistem Entegrasyonları standartlarına uygun olarak tasarlanan bu akış, veri bütünlüğünü telafi mekanizmaları üzerinden garanti eder.
Saga Deseni Uygulama ve Hata Yönetimi Kontrol Listesi
Dağıtık mimarilerde Saga desenini güvenle devreye alabilmek için teknik ekiplerin titizlikle uygulaması gereken adımlar şunlardır:
- İdempotency (Tekrarlanabilirlik) Tasarımı: Ağ hataları nedeniyle aynı mesajın veya telafi isteğinin birden fazla kez gönderilme ihtimaline karşı tüm API uç noktaları idempotent olarak tasarlanmalıdır.
- Zaman Aşımı ve Geri Çekilme (Backoff): Harici servis çağrılarında uygun timeout süreleri belirlenmeli, geçici hatalar için üstel geri çekilme stratejileri uygulanmalıdır.
- Kapsamlı Loglama ve Dağıtık İzleme: Saga adımlarının her biri benzersiz bir korelasyon kimliği (correlation ID) ile etiketlenmeli, hata anında hangi servisin hangi aşamada kaldığı anında raporlanabilmelidir.
- Ölü Mektup Kuyruğu (Dead Letter Queue): Telafi işlemlerinin bile başarısız olduğu uç senaryolar için manuel müdahale gerektiren özel hata kuyrukları oluşturulmalıdır.
- Test Senaryoları ve Kaos Mühendisliği: Servis kesintileri simüle edilerek telafi mekanizmalarının doğruluğu düzenli olarak test edilmelidir.
Kaynaklar
- Sistem Entegrasyonları — Cy Logic Software