messaging

Implement asynchronous event-driven messaging in .NET with Wolverine or MassTransit.

1|Updated Apr 28, 2026
One-click install
npx skills add https://github.com/Trossitec/dotnet-claude-kit --skill messaging-trossitec
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: messaging
Source: https://github.com/Trossitec/dotnet-claude-kit/tree/main/skills/messaging
Command: npx skills add https://github.com/Trossitec/dotnet-claude-kit --skill messaging-trossitec

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

This Skill helps you implement dependable asynchronous messaging in .NET so your systems publish and consume events correctly without dual-write inconsistencies or brittle broker setup.

Core Features & Use Cases

  • Wolverine-first guidance: Covers Wolverine setup for handler discovery, RabbitMQ transport, and transactional outbox integration.
  • Outbox pattern for reliability: Ensures events are stored and published only after the database transaction commits.
  • Event workflows (choreography + saga): Recommends choreography for simple multi-step flows and sagas for complex orchestration with compensations.
  • MassTransit alternative: Provides a pragmatic overview of configuring consumers, outbox, and sagas, including license considerations.
  • Broker configuration options: Guides broker usage for RabbitMQ and Azure Service Bus contexts tied to common event-driven tasks.

Quick Start

Load the messaging skill and ask your AI to generate a Wolverine Program.cs setup plus a transactional outbox-enabled event contract and handler for a RabbitMQ-backed OrderCreated integration event.

Frequently Asked Questions about messaging

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I prevent dual-write inconsistencies when publishing integration events in .NET?

To prevent dual-write inconsistencies, use a transactional outbox to store events in the database and publish them only after the transaction commits. This ensures reliable asynchronous event-driven messaging without data loss.

What is the best way to set up Wolverine for event-driven messaging with RabbitMQ?

Setting up Wolverine for event-driven messaging involves configuring handler discovery, RabbitMQ transport, and transactional outbox integration in your Program.cs. This enables reliable publisher and consumer workflows for integration events.

When should I use saga orchestration instead of choreography for event workflows?

Use saga orchestration for complex multi-step event workflows requiring compensations, and choose choreography for simpler event-driven flows. Saga orchestration provides centralized control while choreography allows independent module-to-module communication.

Can I use MassTransit instead of Wolverine for transactional outbox and saga configuration?

Yes, MassTransit is supported as an alternative for configuring consumers, transactional outbox, and sagas in .NET event-driven messaging. It provides pragmatic options for broker configuration with RabbitMQ or Azure Service Bus, including license considerations.

Does this approach support Azure Service Bus for contract-first message design?

Yes, the event-driven messaging approach supports Azure Service Bus for broker configuration alongside RabbitMQ. It requires contract-first message design and convention-based handler consumption for both broker contexts.

How do I trigger background processing from domain events without losing messages?

Trigger background processing from domain events by using outbox-backed delivery guarantees with convention-based handler consumption. This ensures events are stored and published only after the database transaction commits, preventing message loss.