messaging

Configure RabbitMQ or Azure Service Bus messaging with transactional outbox for .NET services.

640|145|Updated Feb 20, 2026
One-click install
npx skills add https://github.com/codewithmukesh/dotnet-claude-kit --skill messaging-codewithmukesh
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: messaging
Source: https://github.com/codewithmukesh/dotnet-claude-kit/tree/main/skills/messaging
Command: npx skills add https://github.com/codewithmukesh/dotnet-claude-kit --skill messaging-codewithmukesh

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Provides clear, production-grade guidance for implementing reliable asynchronous messaging in .NET projects, removing ambiguity around transports, transactional delivery, and orchestration. It helps teams avoid data inconsistency from dual-writes, choose appropriate orchestration patterns, and standardize message contracts across services.

Core Features & Use Cases

  • Wolverine-first recommendation: opinionated setup for mediator + messaging with built-in outbox and saga support.
  • Transactional Outbox: patterns and DbContext integration to ensure messages are published only after successful transactions.
  • Orchestration guidance: when to use choreography vs stateful sagas and how to model saga state and compensations.
  • Broker and tooling support: RabbitMQ and Azure Service Bus configuration examples and a MassTransit alternative with licensing notes.
  • Handlers and publishing patterns: convention-based handlers, cascading returns, explicit IMessageBus publishing, and anti-patterns to avoid.

Quick Start

Add Wolverine with a transactional outbox, configure RabbitMQ or Azure Service Bus, and implement a simple OrderCreated event and a convention-based handler to verify end-to-end delivery.

Frequently Asked Questions about messaging

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

FAQPage Schema
How do I implement a transactional outbox in .NET to avoid data inconsistency from dual-writes?▼

A transactional outbox in .NET ensures messages are published only after successful database transactions by integrating DbContext with your message bus, preventing data inconsistency from dual-writes. This Skill provides production-grade patterns for this setup.

What is the best way to configure Wolverine for RabbitMQ or Azure Service Bus in .NET?▼

Configuring Wolverine for RabbitMQ or Azure Service Bus involves an opinionated setup providing built-in outbox and saga support for mediator and messaging workflows. This approach offers a streamlined, MIT-licensed alternative for event-driven .NET services.

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

Saga orchestration is preferred over choreography for event-driven workflows when you need to model stateful sagas and explicit compensations across complex inter-service integration. This Skill provides guidance on when to apply each pattern.

Does Wolverine or MassTransit work better for .NET asynchronous messaging?▼

Wolverine is recommended first for .NET asynchronous messaging due to its built-in outbox and MIT licensing, while MassTransit is offered as an alternative with specific commercial licensing considerations to evaluate before committing.

How do I set up convention-based message handlers and publishing patterns in .NET?▼

Setting up convention-based message handlers in .NET involves using cascading returns and explicit IMessageBus publishing for reliable event-driven communication. This Skill details these patterns and highlights anti-patterns to avoid during implementation.

Why does my inter-service communication lose messages during transaction failures in .NET?▼

Inter-service communication in .NET loses messages during transaction failures when dual-writes are used without a transactional outbox. Implementing outbox patterns with DbContext integration ensures messages are only published after successful transactions.