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.