Uniform.Messaging.RabbitMq
1.0.41-preview
dotnet add package Uniform.Messaging.RabbitMq --version 1.0.41-preview
NuGet\Install-Package Uniform.Messaging.RabbitMq -Version 1.0.41-preview
<PackageReference Include="Uniform.Messaging.RabbitMq" Version="1.0.41-preview" />
<PackageVersion Include="Uniform.Messaging.RabbitMq" Version="1.0.41-preview" />
<PackageReference Include="Uniform.Messaging.RabbitMq" />
paket add Uniform.Messaging.RabbitMq --version 1.0.41-preview
#r "nuget: Uniform.Messaging.RabbitMq, 1.0.41-preview"
#:package Uniform.Messaging.RabbitMq@1.0.41-preview
#addin nuget:?package=Uniform.Messaging.RabbitMq&version=1.0.41-preview&prerelease
#tool nuget:?package=Uniform.Messaging.RabbitMq&version=1.0.41-preview&prerelease
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.
Links
| Product | Versions 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. |
-
net10.0
- RabbitMQ.Client (>= 6.8.1)
- Uniform.Foundations (>= 1.0.41-preview)
- Uniform.Messaging (>= 1.0.41-preview)
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 |