Wolverine 6.51.3: durable inbox ve outbox sertleştirmesi
Wolverine 6.51.3, durable inbox ve outbox çevresinde biriken hataları gideren bir dayanıklılık sürümü. Yeni receiver uyumluluk testleri, PostgreSQL, SQL Server, EF Core ve RabbitMQ gibi birçok altyapıda yeniden denemeleri ve dead letter davranışını düzeltiyor. API'de kırıcı değişiklik yok, tek şema eklemesi isteğe bağlı.
Kilit noktalar
- Her durable queue gönderimi outbox satırını atomik olarak taşıyor (PostgreSQL, SQL Server, MySQL, SQLite, Oracle).
- Dead letter yazımı artık beklenir; başarısız yazım dead letter olarak raporlanmaz.
- Deduplication tablosuna isteğe bağlı nullable envelope_id kolonu eklendi; migrasyon zorunlu değil.
- RabbitMQ quorum queue için .DeliveryLimit(n) ve DeliveryLimitForDurableQuorumQueues(n) ile isteğe bağlı x-delivery-limit.
- Kırıcı API değişikliği yok.
Bu sürüm, Wolverine'in durable inbox ve outbox katmanındaki bir dizi raporun ardından çıktı. Ekip, PostgreSQL, SQL Server, Marten, EF Core, RabbitMQ ve SQS üzerinde çalışan yeni bir receiver uyumluluk testi setiyle de ek sorunlar yakaladı ve bunları düzeltti. Dayanıklı mesajların işlenmesi sırasında transaction kapanışı, idempotency ve deduplication davranışları bu kapsamda ele alındı.
Somut değişiklikler arasında, outbox satırının queue gönderimi sırasında her durable gönderimde atomik taşınması, dead letter yazımının beklenmesi ve başarısız yazımların asla dead letter olarak raporlanmaması yer alıyor. Ayrıca RabbitMQ quorum queue'lar için isteğe bağlı delivery limit desteği eklendi. Deduplication tablosuna eklenen nullable envelope_id kolonu isteğe bağlı; migrasyon yapılmamış tablolar da çalışmaya devam ediyor.
Gerçek dünyada kullanımı
- Wolverine ile outbox ve inbox kullanan, PostgreSQL ya da SQL Server üzerinde çalışan bir sipariş servisi.
- RabbitMQ quorum queue tüketen ve poison mesajları sınırlamak isteyen bir arka plan worker'ı.
- Database-per-tenant mimarisinde EF Core ile çok kiracılı bir mesajlaşma sistemi.
Neden önemli
Durable mesajlaşma kullanan ekipler, dead letter ve retry davranışının güvenilirliğini artıran bu düzeltmelerden doğrudan yararlanır. Yükseltmeden önce özel inbox store kullanıyorsanız, yeni envelope_id kolonunu ve release notlarındaki transaction değişikliklerini gözden geçirmeniz gerekir.
Benzer haberler
- Wolverine 6.51 ile Marten projeksiyonlarını kesintisiz yeniden oluşturmaJasperFx (Critter Stack) Blog19 Eki
- C# interface'lerinde collection dönüş tipleri: interface, view ve snapshot farkıNick Cosentino (Dev Leader)2 gün önce
- NebulaGraph'a .NET'ten idempotent toplu yükleme: VID ile çoğaltma sorunuDEV Community: #csharp3 gün önce