Skip to content

Wolverine Integration — Durable Outbox & Retry

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:

| Queue | Message | Behavior | |-------|---------|----------| | notification-fanout | NotificationTrigger | Default parallelism | | notification-delivery | DeliverNotificationCommand | MaxParallelDeliveries (default 8) |

Retry policy on NotificationDeliveryException:

| Attempt | Delay | |---------|-------| | 1 | 10 seconds | | 2 | 1 minute | | 3 | 5 minutes | | 4 | 30 minutes | | 5 | 2 hours |