Uniform.Messaging.RabbitMq 1.0.41-preview

This is a prerelease version of Uniform.Messaging.RabbitMq.
dotnet add package Uniform.Messaging.RabbitMq --version 1.0.41-preview
                    
NuGet\Install-Package Uniform.Messaging.RabbitMq -Version 1.0.41-preview
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Uniform.Messaging.RabbitMq" Version="1.0.41-preview" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Uniform.Messaging.RabbitMq" Version="1.0.41-preview" />
                    
Directory.Packages.props
<PackageReference Include="Uniform.Messaging.RabbitMq" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Uniform.Messaging.RabbitMq --version 1.0.41-preview
                    
#r "nuget: Uniform.Messaging.RabbitMq, 1.0.41-preview"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Uniform.Messaging.RabbitMq@1.0.41-preview
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Uniform.Messaging.RabbitMq&version=1.0.41-preview&prerelease
                    
Install as a Cake Addin
#tool nuget:?package=Uniform.Messaging.RabbitMq&version=1.0.41-preview&prerelease
                    
Install as a Cake Tool

Uniform.Messaging.RabbitMq

RabbitMQ provider for the Uniform microservice framework. Implements IPublisher and the consumer subscription pipeline over AMQP using the RabbitMQ .NET client.

Installation

dotnet add package Uniform
dotnet add package Uniform.Messaging.RabbitMq

Setup

Add RabbitMqModule when bootstrapping your service:

await UniformService<MyService>
    .Initialise()
    .WithModule<RabbitMqModule>()
    .Run();

Configuration

Key Default Description
RabbitMq:Host localhost RabbitMQ hostname
RabbitMq:Port 5672 AMQP port
RabbitMq:Username guest Username
RabbitMq:Password guest Password
RabbitMq:VirtualHost / Virtual host
RabbitMq:MaxConcurrentConsumers 10 Max parallel message handlers
RabbitMq:PublishConfirmTimeoutSeconds 5 Publisher confirm timeout
Uniform:ServiceName unknown Used as the queue name for this service

Set these in appsettings.json or environment variables (use __ as the hierarchy separator for env vars, e.g. RabbitMq__Host).

Topology

  • Each service gets one queue named after Uniform:ServiceName
  • Each message type gets one exchange named after its full .NET type name (including namespace), ensuring different services can define messages of the same class name without collision
  • Exchanges and queues are created automatically on startup; exchanges that no longer have a corresponding consumer are torn down

Transactional outbox

Publishing with PublishOptions.PublishEventually (the default) adds messages to an in-memory outbox. They are only sent after the consumer's Consume method returns without throwing — giving you Unit of Work semantics at no extra cost.

// Sent only if Consume() completes successfully
await publisher.Publish(new OrderPlaced(order.Id));

// Sent immediately, regardless of consumer outcome
await publisher.PublishAndWait(new OrderPlaced(order.Id));

Retries and dead-lettering

Failed messages are automatically re-queued with exponential backoff. If a message exceeds the maximum retry count it is moved to a dead-letter queue for inspection.

Request/response

var result = await publisher.Request<ValidateOrder, ValidationResult>(
    new ValidateOrder(orderId),
    timeout: TimeSpan.FromSeconds(10));

The framework creates a transient reply queue, correlates the response, and cleans up automatically.

Product Compatible and additional computed target framework versions.
.NET net10.0 is compatible.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (3)

Showing the top 3 NuGet packages that depend on Uniform.Messaging.RabbitMq:

Package Downloads
Uniform.Messaging.CloudAmqp

CloudAMQP (managed RabbitMQ) messaging provider for the Uniform microservice framework.

Uniform.Messaging.AmazonMq

Amazon MQ (RabbitMQ engine) messaging provider for the Uniform microservice framework.

Uniform.Messaging.LavinMq

LavinMQ messaging provider for the Uniform microservice framework.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.0.41-preview 62 9/11/2026
1.0.40-preview 75 7/21/2026
1.0.39-preview 65 6/28/2026
1.0.38-preview 76 6/26/2026
1.0.37-preview 69 6/6/2026
1.0.36-preview 60 5/25/2026
1.0.35-preview 65 5/18/2026
1.0.34-preview 72 5/10/2026
1.0.33-preview 70 5/9/2026
1.0.32-preview 73 5/8/2026
1.0.31-preview 65 5/8/2026
1.0.30-preview 345 5/8/2026