messaging

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

224|87|Updated Dec 15, 2018
One-click install
npx skills add https://github.com/Resgrid/Core --skill messaging-resgrid
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: messaging
Source: https://github.com/Resgrid/Core/tree/main/.opencode/skills/messaging
Command: npx skills add https://github.com/Resgrid/Core --skill messaging-resgrid

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

This Skill helps you design dependable, event-driven messaging in .NET so that background workflows and module-to-module communication remain consistent even under failures.

Core Features & Use Cases

  • Wolverine-first messaging patterns: Set up transports, discover handlers, and use outbox/saga support to run event-driven code reliably.
  • Transactional outbox reliability: Ensure events are only published after the database transaction commits, preventing dual-write inconsistencies.
  • Choreography vs saga orchestration: Use event choreography for simple multi-step flows and sagas for complex workflows with compensation.
  • Optional alternative with MassTransit: Use MassTransit where required, including consumers, endpoints, and outbox/saga concepts.
  • Use Case: When an OrderCreated event is stored in one module, reliably trigger downstream notification and fulfillment logic in other modules without losing or duplicating events.

Quick Start

Load the messaging skill and configure Wolverine with RabbitMQ (or Azure Service Bus) plus a transactional outbox so published events are tied to successful database commits.

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 failures when publishing integration events in .NET?

To prevent dual-write failures in .NET, implement a transactional outbox so integration events are only published after the database transaction commits, ensuring module-to-module communication remains consistent under failures.

What's the best way to orchestrate multi-step workflows in .NET event-driven messaging?

For multi-step workflows in .NET event-driven messaging, use event choreography for simple flows and saga orchestration for complex workflows with compensation, utilizing Wolverine or MassTransit to manage the process reliably.

Can I configure Wolverine with RabbitMQ for background processing in .NET?

Yes, you can configure Wolverine with RabbitMQ for background processing in .NET by setting up the transport, discovering handlers, and enabling outbox support to run event-driven code reliably.

When do I need a transactional outbox with Azure Service Bus in .NET?

You need a transactional outbox with Azure Service Bus in .NET when publishing integration events must be strictly tied to successful database commits, preventing event loss or duplication during module-to-module communication.

How do I define message contracts for event-driven communication in .NET?

To define message contracts for event-driven communication in .NET, create shared data records that represent the events, allowing modules to publish and consume integration events consistently across the message bus.

Does MassTransit support saga orchestration and outbox patterns like Wolverine?

Yes, MassTransit supports saga orchestration and outbox patterns similarly to Wolverine, providing consumers, endpoints, and saga concepts to ensure reliable event-driven workflows in .NET applications.