Skip to content

Wolverine Integration — Durable Outbox & Retry for Notifications

Granit.Notifications.Wolverine replaces the default in-process Channel<T> publisher with a durable IMessageBus-backed implementation. Notifications are persisted in the Wolverine outbox and survive application crashes.

[DependsOn(typeof(GranitNotificationsWolverineModule))]
public class AppModule : GranitModule { }

The module configures two local queues:

QueueMessageBehavior
notification-fanoutNotificationTriggerDefault parallelism
notification-deliveryDeliverNotificationCommandMaxParallelDeliveries (default 8)

Retry policy on NotificationDeliveryException:

AttemptDelay
110 seconds
21 minute
35 minutes
430 minutes
52 hours