Mesajlaşma

Wolverine 6.51 ile Serverless Ortamda Transactional Outbox Dönemi

Wolverine 6.51, DurabilityMode.ServerlessWithOutbox modunu ekliyor. Bu sayede Cloud Run, AWS Lambda ya da Azure Functions üzerinde çalışan handler'lar arka plan süreçleri olmadan transactional outbox kullanabilir. Mod, dışarıdan tetiklenen bir durability pass ile gönderilemeyen mesajları kurtarır ve Wolverine.HTTP üzerinden push ile mesaj almayı da destekler.

Yayın tarihi
Okuma süresi
14 dk okuma
agent çalıştırması #5
agent çalıştırması #5
Orijinale git jasperfx.net

Bu haberi bildir

Özette bir hata mı var, ya da bu içeriğin sahibi misin? Mesajın doğrudan bana e-posta olarak gelir.

Mesaj türü

Kilit noktalar

  • DurabilityMode.ServerlessWithOutbox, Wolverine 6.51 ile geliyor ve arka plan agent'larını kapatırken outbox'ı koruyor.
  • Giden mesajlar aynı veritabanı transaction'ı içinde outbox'a yazılır ve istek bitmeden gönderilir.
  • Başarısız gönderimler, host.RunDurabilityPassAsync() veya MapWolverineDurabilityEndpoints() ile tetiklenen durability pass'te kurtarılır.
  • OutboxStaleTime bu modda varsayılan olarak 60 saniyedir; pass bu süreden eski satırları yeniden gönderir.
  • MapWolverineDurabilityEndpoints() yetkilendirme seçmenizi zorunlu kılar; AllowAnonymous() açıkça yazılmalıdır.
  • Gelen mesajlar için MapWolverinePushReceiver() ile HTTP push alıcısı, Pub/Sub için MapPubsubPushReceiver() kullanılabilir.

Wolverine, normalde uzun süre çalışan süreçler için tasarlandı. Node kaydı, leader election, polling ve broker dinleyicileri gibi arka plan işleri serverless ortamlarda sorun çıkarıyordu. Wolverine 6.51 ile gelen DurabilityMode.ServerlessWithOutbox modu, bu arka plan işlerini kapatırken outbox garantisini koruyor. Giden mesajlar, handler'ın veritabanı işlemiyle aynı transaction içine yazılıyor, commit sonrasında istek bitmeden gönderiliyor ve başarıyla kabul edilen satırlar silinüyor.

Gönderim başarısız olursa satır outbox'ta kalır ve dışarıdan tetiklenen bir durability pass bunu sonradan gönderir. Pass, zamanlanmış mesajları da serbest bırakır ve süre sınırı içinde çalışır. Pass'i kod içinden, HTTP endpoint'i üzerinden ya da komut satırından tetikleyebilirsiniz. Ayrıca Wolverine.HTTP push receiver'ı, Google Pub/Sub push abonelikleri gibi kaynaklardan gelen mesajları handler'lara yönlendiriyor. Bu modda gelen mesajlar için dinleyici başlatılmadığını ve gecikmenin pass sıklığına bağlı olduğunu unutmayın.

Gerçek dünyada kullanımı

  • Cloud Run üzerinde Pub/Sub ile çalışan, bütçesi düşük bir Wolverine ve Marten servisi.
  • AWS Lambda fonksiyonunun veritabanı yazımı ile olay yayınlamasını atomik tutması gereken sipariş işleme akışı.
  • Zamanlayıcı ile çağrılan bir Cloud Run Job veya CronJob'un bekleyen outbox mesajlarını periyodik olarak göndermesi.

Neden önemli

Serverless ortamda Wolverine kullanan ekipler artık outbox garantisini always-on süreç olmadan elde edebilir. Kurtarma gecikmesinin durability pass sıklığına eşit olduğunu ve push endpoint'lerini yetkilendirmeniz gerektiğini bilmek önemlidir.

Bu özet, JasperFx (Critter Stack) Blog üzerindeki orijinal yazıdan agent tarafından üretildi. Yazının tamamı ve tüm hakları ilgili yazara/yayıncıya aittir. Orijinal yazıya git

Benzer haberler

Geri bildirim

Bir hata mı buldun, bir fikrin mi var? Yazdığın mesaj doğrudan bana e-posta olarak gelir.

Mesaj türü