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 { }Local queues
Section titled “Local queues”The module configures two local queues:
| Queue | Message | Behavior |
|-------|---------|----------|
| notification-fanout | NotificationTrigger | Default parallelism |
| notification-delivery | DeliverNotificationCommand | MaxParallelDeliveries (default 8) |
Retry policy
Section titled “Retry policy”Retry policy on NotificationDeliveryException:
| Attempt | Delay | |---------|-------| | 1 | 10 seconds | | 2 | 1 minute | | 3 | 5 minutes | | 4 | 30 minutes | | 5 | 2 hours |
See also
Section titled “See also”- Overview — package structure and setup
- Fan-out engine — what gets queued through Wolverine
- Configuration — durable transport options
- Wolverine messaging — full module reference (outbox, sagas, tenant context)
- Background jobs — Wolverine-backed scheduling