Örnek: Ürünlerin ve siparişlerin farklı servisler tarafından yönetildiği senaryoda; sipariş verildiğinde ürün stoğunun azalmaması durumudur.
İşlem birimleri diyebiliriz. Bir veya birden fazla operasyondan oluşabilir. Para transferi örnek verilebilir: X Kişisinin hesabından parayı çek(1. Transaction) Y kişisinin hesabına yatır(2. transaction) Burada işlem esnasında çıkacak bir problem bütünlüğü bozabilir.
Değişikliklerin db'ye nasıl uygulanacağını belirten prensiptir. - Atomik : Ya Hep Ya hiç prensibidir. - Consistency : Dataların tutarlı olması. Veritabanını sürekli valid tutar. - Isolation : Transaction'ların birbirinden bağımsız olmasını ifade eder. - Durability : Dataların güvenli bir ortamda saklanmasını ifade eder. Daha kolay olan yöntemdir.- Distributed transaction'a katılacak servis sayısı maksimum 4 ise uygulanması önerilir.
- Sisteme katılan her katılımcı bir karar vericidir.(Başarılı-başarısız)
- Herhangi bir merkezi yöntem yoktur.
- Senkron ve asenkron iletişim yapılabilir. Tercih edilmesi gereken message broker ile async iletişimdir.
- Her servis kuyruğu dinler, gelen event/message ile ilgili işlem yapar ve sonuç başarılı veya başarısız durumunu tekrar kuyruğa döner.
- Point to Point bir iletişim olmadığı için servisler arası bağlılık azalır.
Biz senaryomuzda Async iletişimi tercih edeceğiz.Buraya message broker kullanacağız. Senkron iletişim servislerin birbirinin endpointlere istek yapması durumudur.
Bir transaction'ın yapmış olduğu işlemi tersine alan transaction'lardır. Örnek : Ürün stoktan düşüldükten sonra ödeme başarısız oldu burada önceki adıma gider ve stoktan düşülen ürünü eski haline getirir.Event'ler geçmiş zamanı, mesajlar gelecek zamanı ifade ederler bu şekilde isimlendirilirler.