Saga Pattern
Saga deseni (Saga Pattern) — Uzun süren dağıtık iş akışını yerel transaction'lara bölen ve başarısızlıkta iş anlamına uygun telafi adımları kullanan koordinasyon deseni.
Yerel Transaction Zinciri
Saga, uzun bir iş akışını her biri kendi veri kaynağında commit edilen yerel transaction'lara böler. Bir adım tamamlandığında sonraki adım tetiklenir; daha sonraki bir adım başarısız olursa önceki etkileri iş anlamında telafi eden işlemler çalıştırılabilir.
Bu yaklaşım kaynakları bütün akış boyunca kilitlemeden eventual consistency sağlar.
Orchestration ve Choreography
Orchestration modelinde merkezi bir bileşen hangi adımın ne zaman çalışacağını yönetir. Choreography modelinde servisler olaylara tepki vererek akışı dağıtık biçimde ilerletir. İki yaklaşımın gözlemlenebilirlik, coupling ve hata ayıklama özellikleri farklıdır.
Compensation Rollback Değildir
Telafi işlemi veritabanı rollback'i ile aynı değildir. Gönderilmiş e-posta, dış ödeme veya fiziksel işlem tamamen geri alınamayabilir. Compensation, sistemin iş açısından kabul edilebilir yeni bir duruma taşınmasıdır.
Adımlar tekrar çalışabilecekse Idempotency ayrıca tasarlanmalıdır.