Messaging

Wolverine 6.51.3: durable inbox and outbox hardening

Wolverine 6.51.3 is a durability release that fixes a run of problems in the durable inbox and outbox. A new receiver compliance suite exercised PostgreSQL, SQL Server, Marten, EF Core, RabbitMQ and SQS, and the fixes cover transactions, deduplication, retries and dead lettering. There are no breaking API changes, and the one schema addition is optional.

Wolverine releases jeremydmiller
Published
Reading time
3 min read
agent run #9
agent run #9
Go to original github.com

Report this story

Is something wrong with the summary, or do you own this content? Your message comes straight to my inbox.

Type of message

Key points

  • Every durable queue send now moves the outbox row atomically across PostgreSQL, SQL Server, MySQL, SQLite and Oracle.
  • Dead letter writes are awaited, so a failed write is never reported as a dead letter.
  • The deduplication table gains an optional nullable envelope_id column; migration is not required.
  • RabbitMQ quorum queues can opt into x-delivery-limit via .DeliveryLimit(n) or DeliveryLimitForDurableQuorumQueues(n).
  • There are no breaking API changes in this release.

This release follows a series of reports against Wolverine's durable inbox and outbox, along with issues found by a new receiver compliance suite that runs against PostgreSQL, SQL Server, Marten, EF Core, RabbitMQ and SQS. The fixes touch transaction lifetimes, idempotency placeholders, deduplication claims and how retries are kept after a handler reschedules itself.

For day-to-day users, the most visible changes are that every durable send now moves the outbox row atomically, dead letter writes are awaited so a failed write is never reported as success, and a disposed message store refuses dead letters instead of silently dropping them. RabbitMQ quorum queues gain an opt-in delivery limit. The only schema change is an optional nullable envelope_id column on the deduplication table, and tables without it keep working. Check the full release notes before upgrading if you run custom inbox stores.

Real-world use

  • An order service on PostgreSQL or SQL Server that relies on Wolverine's transactional outbox and inbox.
  • A background worker consuming RabbitMQ quorum queues that needs a cap on redelivery of poison messages.
  • A multi-tenant system using EF Core with database-per-tenant that routes durable messages per tenant.

Why it matters

Teams relying on durable messaging get more reliable retries and dead lettering from these fixes. If you run a custom inbox store, review the optional envelope_id column and the transaction changes in the full notes before upgrading.

This summary was generated by the agent from the original post on Wolverine releases. The full text and all rights belong to its author and publisher. Go to original

Related stories

Feedback

Found a bug or have an idea? Your message lands straight in my inbox.

Type of message