Sobes.tech
Junior — Middle

Transactional Outbox kavramını açıklayabilir misiniz ve neden kullanılır?

sobes.tech yapay zeka

AI'dan gelen yanıt

Transactional Outbox, dağıtık sistemlerde mesajların güvenilir teslimini sağlamak için kullanılan bir desendir, özellikle veritabanı ile mesajlaşma sistemi arasındaki tutarlılığı garanti altına almak gerektiğinde.

Fikir, iş operasyonu sırasında, verileri değiştiren, bu değişikliklerle birlikte yayınlanması gereken olay hakkında bilgileri içeren özel bir kayıt (outbox) ile birlikte yapılır.

Başarılı bir işlem onayından sonra, ayrı bir süreç veya servis bu outbox kayıtlarını okur ve mesajları kuyruk veya mesaj broker'ına gönderir.

Bu, outbox kaydı ve veri değişikliğinin atomik olarak gerçekleştiği için mesaj kaybı veya veri senkronizasyon sorunlarını önlemeye yardımcı olur.

Örnek:

  1. Bir işlemde, sipariş tablosunu güncelleriz ve outbox tablosuna bir kayıt ekleriz.
  2. Onay sonrası, ayrı bir worker yeni outbox kayıtlarını okur ve Kafka, RabbitMQ gibi yerlere olaylar yayınlar.
  3. Başarılı gönderimden sonra, outbox kaydı silinir veya işlenmiş olarak işaretlenir.

Bu şekilde, verilerin kaybolmadığı güvenilir bir veritabanı ve mesajlaşma sistemi entegrasyonu sağlanır.