Transport-Agnostic .NET Messaging Framework
Write messaging code once, run it on Azure Service Bus, Redis, AMQP, SQL Server, PostgreSQL, or any other transport. Nimbus provides a clean abstraction over messaging infrastructure.
// Define a command
public class PlaceOrderCommand : IBusCommand
{
public string OrderId { get; set; }
public decimal Amount { get; set; }
}
// Create a handler
public class PlaceOrderHandler : IHandleCommand<PlaceOrderCommand>
{
public async Task Handle(PlaceOrderCommand command)
{
// Process the order
Console.WriteLine($"Processing order {command.OrderId}");
}
}
// Configure the bus
var bus = new BusBuilder()
.Configure()
.WithTransport(new RedisTransportConfiguration()
.WithConnectionString("localhost:6379"))
.WithNames("MyApp", Environment.MachineName)
.WithTypesFrom(typeProvider)
.WithAutofacDefaults(componentContext)
.Build();
// Send a command
await bus.Send(new PlaceOrderCommand
{
OrderId = "12345",
Amount = 99.99m
}); Everything you need to build reliable, scalable messaging applications
Write once, run anywhere. Switch between Azure Service Bus, Redis, AMQP, or InProcess without changing your application code.
Built-in support for Commands, Events (competing & multicast), Requests, and Multicast Requests.
Seamless integration with Autofac and other dependency injection containers. Handlers are resolved per-message.
Flexible routing strategies and automatic message dispatching to the correct handlers.
Add cross-cutting concerns — logging, metrics, validation — using inbound and outbound interceptors.
DataContract or JSON serialization out of the box, with a simple interface for custom serializers.
Install Nimbus from NuGet and start building transport-agnostic messaging applications today.
Read the Documentation →