Repository navigation
Wolverine 6.54.0
Highlights
Dead letter failure groups (#5209, #5210). Wolverine now fingerprints every message as it moves to dead letter storage, so dead letters can be managed one failure group at a time:
- The default
IDeadLetterFingerprinterhashes the exception type and the first stack frame from application code. Register your own to replace it. DeadLetterEnvelopeQuerygainsFailureGroup,ExceptionMessageMatch(Exact / Contains),TenantIdandArchived.- A new
SummarizeAllAsyncoverload groups by failure group, message type or endpoint, with first and last failure times. ReplayMatchingAsync,DiscardMatchingAsync,ArchiveMatchingAsyncandRestoreMatchingAsyncreport how many dead letters they affected.- A message that fails again after a replay reports its
ReplayCount,LastReplayedAtandFirstFailedAt. - Archived dead letters drop out of summaries, queries and replays until restored, and can be expired separately with
DurabilitySettings.ArchivedDeadLetterRetention. IDeadLetters.Capabilitiestells you what a store supports.
All changes are additive. The relational stores pick up seven nullable columns on wolverine_dead_letters, an index and a new wolverine_dead_letter_history table through the normal schema migration. See the dead letter storage guide.
Deduplication fixes (#5205, #5206, #5208), and Bobcat 1.0.0-rc.4 dependency pins (#5211). The WolverineFx.Bobcat* packages remain alpha (6.54.0-alpha.1).
What's Changed
- GH-5205, GH-5206: [DeduplicatedWithResponse] claim-in-transaction gaps ([WriteAggregate] T / [BoundaryModel], and repeats refused over committed work) by @jeremydmiller in #5208
- Bobcat 1.0.0-rc.4 by @jeremydmiller in #5211
- GH-5209 Dead letters: failure fingerprints, operation counts, replay history, archive/restore and tenant scoping by @jeremydmiller in #5210
Full Changelog: V6.53.0...V6.54.0