Wolverine para C# (.NET): guia completo com exemplos práticos

Treinador Online de Python para Iniciantes

Aprenda Python facilmente sem sobrecarga teórica. Resolva tarefas práticas com verificação automática e escreva código diretamente no navegador.

Start Course

Wolverine para C# (.NET): guia completo sobre Message Bus e CQRS

1. O que é e para que serve?

Wolverine é uma biblioteca de alto desempenho para .NET que implementa os padrões Message Bus e CQRS (Command Query Responsibility Segregation). Ela oferece aos desenvolvedores uma ferramenta poderosa e flexível para construir aplicações distribuídas, escaláveis e tolerantes a falhas. Diferente de muitas alternativas, Wolverine não é apenas uma abstração sobre filas de mensagens, mas um framework completo que gerencia roteamento, tratamento de erros, sagas, processos de longa duração e integração com protocolos de transporte populares (RabbitMQ, Azure Service Bus, Amazon SQS, Kafka e outros).

Para que serve Wolverine? Na arquitetura moderna de microsserviços e sistemas orientados a eventos, surge frequentemente a necessidade de transmitir mensagens de forma confiável entre componentes. Wolverine resolve esse problema oferecendo:

  • Message Bus: Garante a transmissão assíncrona, confiável e escalável de mensagens entre serviços.
  • CQRS: Separa as operações de leitura e escrita de dados, permitindo otimizar o desempenho e escalar cada aspecto do sistema de forma independente.
  • Saga: Gerencia processos de negócio de longa duração que podem envolver várias etapas e exigir compensação em caso de falhas.
  • Integração com ASP.NET Core: Integra-se facilmente em projetos existentes, utilizando mecanismos familiares de DI e middleware.

Wolverine é a escolha certa para quem busca máxima performance e flexibilidade sem abrir mão da facilidade de desenvolvimento. A biblioteca é ativamente mantida pela comunidade e utilizada em ambientes de produção.

2. Instalação

Wolverine é instalado via NuGet. Para começar, você precisará do pacote base e, dependendo do transporte escolhido, pacotes adicionais.

Comando principal de instalação:

dotnet add package WolverineFx

Para RabbitMQ:

dotnet add package WolverineFx.RabbitMQ

Para Azure Service Bus:

dotnet add package WolverineFx.AzureServiceBus

Para Amazon SQS:

dotnet add package WolverineFx.AmazonSQS

Para Kafka:

dotnet add package WolverineFx.Kafka

Após instalar os pacotes, configure o Wolverine no seu arquivo Program.cs.

3. Início rápido — exemplo mínimo funcional

Crie um aplicativo de console .NET e adicione o pacote WolverineFx. Em seguida, substitua o conteúdo do Program.cs pelo código abaixo:

using Wolverine;
using Microsoft.Extensions.Hosting;

// 1. Criar o host com Wolverine
using var host = await Host.CreateDefaultBuilder(args)
    .UseWolverine(opts =>
    {
        // Configuração do Wolverine (sem transporte, usando o embutido)
        opts.PublishAllMessages().Locally();
    })
    .StartAsync();

// 2. Obter a instância do IMessageBus
var bus = host.Services.GetRequiredService();

// 3. Enviar uma mensagem
await bus.SendAsync(new HelloMessage("Mundo"));

// 4. Definir o manipulador (pode estar em qualquer classe)
public class HelloMessageHandler
{
    public void Handle(HelloMessage message)
    {
        Console.WriteLine($"Olá, {message.Name}!");
    }
}

// 5. Definir a mensagem
public record HelloMessage(string Name);

Este exemplo mínimo

Recommendations