MassTransit is a free, open-source distributed application framework for .NET that simplifies building message-based (asynchronous) applications.

It provides a consistent abstraction over message brokers like RabbitMQ, Azure Service Bus, Amazon SQS, ActiveMQ, and Kafka, so you can focus on business logic instead of low-level messaging details.

Key Features

Example Usage

Here’s a simple example of setting up MassTransit with RabbitMQ:

using MassTransit;
using Microsoft.Extensions.DependencyInjection;

var services = new ServiceCollection();

services.AddMassTransit(x =>
{
    x.AddConsumer<OrderSubmittedConsumer>();

    x.UsingRabbitMq((context, cfg) =>
    {
        cfg.Host("localhost", "/", h =>
        {
            h.Username("guest");
            h.Password("guest");
        });

        cfg.ConfigureEndpoints(context);
    });
});

var provider = services.BuildServiceProvider();
var busControl = provider.GetRequiredService<IBusControl>();

await busControl.StartAsync();

And a consumer

public class OrderSubmittedConsumer : IConsumer<OrderSubmitted>
{
    public Task Consume(ConsumeContext<OrderSubmitted> context)
    {
        Console.WriteLine($"Order received: {context.Message.OrderId}");
        return Task.CompletedTask;
    }
}

Real-World Use Cases

Why Use MassTransit?

MassTransit in .NET is a powerful framework for building distributed, event-driven, and message-based applications, abstracting away the complexity of working directly with message brokers while giving you robust tools for scalability and resiliency.