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
Também na biblioteca
Monitoramento de aplicações Rust com a biblioteca tracing
Geolocalização e Mapas em C# (.NET): Visão Geral de Bibliotecas e Ferramentas
Aprendizado de Máquina em Rust: visão geral das bibliotecas para ML e Data Science
Geração de relatórios PDF em Java: visão geral das bibliotecas e ferramentas
Trabalho com imagens em Kotlin: bibliotecas e ferramentas