messaging

Coordinate message publishing with database transactions in .NET systems.

1|Updated Mar 27, 2026
One-click install
npx skills add https://github.com/Maj3D10/Training-Platform --skill messaging-maj3d10
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: messaging
Source: https://github.com/Maj3D10/Training-Platform/tree/main/.agent/skills/messaging
Command: npx skills add https://github.com/Maj3D10/Training-Platform --skill messaging-maj3d10

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Messaging between modules in .NET often becomes unreliable when publish and database writes aren’t coordinated, leading to lost events, inconsistent state, and complex orchestration logic.

Core Features & Use Cases

  • Reliable event publishing with the transactional outbox to ensure messages are only sent after the database transaction commits, preventing dual-write inconsistencies.
  • Practical event-driven patterns including Wolverine/ MassTransit setup, event publishing, convention-based consumers, and saga orchestration (choreography vs saga).
  • Broker configuration guidance for RabbitMQ and Azure Service Bus scenarios, including how to structure message contracts as simple data records.

Quick Start

Load the messaging skill and ask it to show how to implement an outbox-backed Wolverine setup with RabbitMQ and a saga for a multi-step workflow.

Frequently Asked Questions about messaging

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

FAQPage Schema
How do I prevent lost events when publishing messages in .NET event-driven systems?

A transactional outbox prevents lost events by coordinating message publishing with database transactions, ensuring messages are only sent after the database transaction commits to avoid dual-write inconsistencies.

What is the difference between saga orchestration and choreography in Wolverine?

Saga orchestration coordinates multi-step workflows centrally, while choreography distributes responsibility across event consumers. Wolverine supports both patterns for reliable event-driven communication in .NET systems.

Can I use MassTransit instead of Wolverine for event-driven messaging?

Yes, MassTransit is supported as an alternative to Wolverine, but requires v9+ licensing. Wolverine is the default framework for setting up outbox-backed event publishing and convention-based consumers.

How do I configure RabbitMQ and Azure Service Bus as broker transports for .NET messaging?

The messaging skill provides broker configuration guidance for RabbitMQ and Azure Service Bus, including how to structure message contracts as simple data records for reliable event-driven communication.

Why does my module-to-module integration lose messages during database transaction failures?

Messages are lost when publish and database writes are not coordinated. Implementing a transactional outbox ensures messages are only sent after the database transaction commits, preventing inconsistent state.