Sobes.tech
Junior — Middle

Transaction Outbox kavramını ve uygulamasını açıklayabilir misiniz?

sobes.tech yapay zeka

AI'dan gelen yanıt

Transaction Outbox — güvenilir bir şekilde olayların veya mesajların veritabanından diğer sistemlere iletimini sağlamak için kullanılan bir desen olup, özellikle mikroservis mimarisinde kullanılır.

Fikir, veritabanında veri değişikliği yaparken ve bir olay göndermeye ihtiyaç duyulduğunda (örneğin, mesaj kuyruğuna), bu işlemlerin tek bir işlem kapsamında gerçekleştirilmesidir. Doğrudan mesaj göndermek yerine, olay özel bir tabloya — "outbox" — kaydedilir.

Başarılı bir işlem onayından sonra, ayrı bir süreç veya servis outbox tablosundaki kayıtları okur ve bunları ilgili sisteme (örneğin, Kafka, RabbitMQ) gönderir. Bu, olayın kaybolmamasını ve iki kez gönderilmemesini sağlar.

Uygulama örneği:

  1. Serviste sipariş güncellenir ve aynı anda "OrderUpdated" olayı outbox tablosuna kaydedilir.
  2. İşlem onaylanır — veriler ve olay atomik olarak kaydedilir.
  3. Ayrı bir worker outbox'tan okur ve olayı kuyruğa yayınlar.

Bu şekilde, dağıtık işlemler olmadan veritabanı ile mesajlaşma sistemi arasında tutarlılık sağlanır.