Skip to content

Eventing

Cephalon.Eventing is the transport-neutral eventing capability. The Wolverine adapter wires the runtime against a broker (in-memory, RabbitMQ, Azure Service Bus, AWS SQS, Kafka).

Click any package name to jump to its source-doc.

PackageNuGet IDMaturityCapabilityWhat it ships
Eventing (base)Cephalon.EventingM3Capability.EventingIMessagePublisher, IMessageHandler<T>, [Event], MessageContext, process-manager base.
Wolverine adapterCephalon.Eventing.WolverineM3Capability.EventingEngine:Messaging:Provider="Wolverine" registration; outbox, scheduled delivery, DLQ replay, process managers, broker topology.
BehaviorsCephalon.Eventing.BehaviorsM3(decorators)WithRetry, WithCircuitBreaker, WithInbox, WithOutbox, WithDeadLetter.
ScenarioPackages
Publish + handle in-memory (tests / monolith)Cephalon.Eventing + Cephalon.Eventing.Wolverine
Distributed with RabbitMQ+ Wolverine.RabbitMQ
Distributed with Azure Service Bus+ Wolverine.AzureServiceBus
Distributed with AWS SQS/SNS+ Wolverine.AmazonSqs
Distributed with Kafka+ Wolverine.Kafka
Adding retries / circuit-breaker decorators+ Cephalon.Eventing.Behaviors
appsettings.json
{
"Engine": {
"Messaging": {
"Enabled": true,
"Provider": "Wolverine",
"Wolverine": {
"Transport": "RabbitMQ",
"ConnectionString": "...",
"Concurrency": 4,
"ScheduledDelivery": true,
"DeadLetter": { "MaxAttempts": 5, "Backoff": "00:00:30" }
}
}
}
}

Full schema + 6 transport scenarios: Reference → Configuration → Messaging.

Behaviors with the Cephalon.Eventing.Behaviors package:

DecoratorWhat it adds
.WithRetry(attempts, backoff)Per-handler retry with exponential backoff.
.WithCircuitBreaker(threshold)Fail-fast after N consecutive failures.
.WithInbox()Deduplicate messages by id (requires Capability.Data).
.WithOutbox()Transactional publish from a DB write (requires Capability.Data).
.WithDeadLetter(topic)Route after-all-retries-exhausted messages to a DLQ.
.WithIdempotency(keySelector)Skip-execute if handler ran for this key before.