Franz.Common.Messaging.Hosting.RabbitMQ
1.7.0
See the version list below for details.
dotnet add package Franz.Common.Messaging.Hosting.RabbitMQ --version 1.7.0
NuGet\Install-Package Franz.Common.Messaging.Hosting.RabbitMQ -Version 1.7.0
<PackageReference Include="Franz.Common.Messaging.Hosting.RabbitMQ" Version="1.7.0" />
<PackageVersion Include="Franz.Common.Messaging.Hosting.RabbitMQ" Version="1.7.0" />
<PackageReference Include="Franz.Common.Messaging.Hosting.RabbitMQ" />
paket add Franz.Common.Messaging.Hosting.RabbitMQ --version 1.7.0
#r "nuget: Franz.Common.Messaging.Hosting.RabbitMQ, 1.7.0"
#:package Franz.Common.Messaging.Hosting.RabbitMQ@1.7.0
#addin nuget:?package=Franz.Common.Messaging.Hosting.RabbitMQ&version=1.7.0
#tool nuget:?package=Franz.Common.Messaging.Hosting.RabbitMQ&version=1.7.0
Franz.Common.Messaging.Hosting.RabbitMQ
A dedicated hosting library within the Franz Framework that provides RabbitMQ-specific hosted services and dependency injection extensions.
This package bridges the RabbitMQ transport layer (Franz.Common.Messaging.RabbitMQ) with the .NET hosting infrastructure (Microsoft.Extensions.Hosting).
✨ Features
Hosted Services
RabbitMQHostedService– continuously consumes RabbitMQ messages and dispatches them.OutboxHostedService– publishes stored outbox messages to RabbitMQ in the background.MessagingHostedService– general-purpose hosted message orchestrator.
Dependency Injection Extensions
RabbitMQHostingServiceCollectionExtensionssimplifies service registration inStartup/Program.cs.- Provides one-liners like
AddRabbitMQHostedListener()andAddOutboxHostedListener().
Separation of Concerns
- Keeps transport logic (
Franz.Common.Messaging.RabbitMQ) separate from hosting concerns. - Makes testing listeners independent of the hosting runtime.
- Keeps transport logic (
Observability
- Structured logging with emoji conventions (✅ success, ⚠️ retries, 🔥 DLQ).
- Compatible with OpenTelemetry for distributed tracing.
📂 Project Structure
Franz.Common.Messaging.Hosting.RabbitMQ/
├── Extensions/
│ └── RabbitMQHostingServiceCollectionExtensions.cs
├── HostedServices/
│ ├── RabbitMQHostedService.cs
│ ├── MessagingHostedService.cs
│ └── OutboxHostedService.cs
└── readme.md
⚙️ Dependencies
- Microsoft.Extensions.Hosting (8.0.0)
- Microsoft.Extensions.DependencyInjection.Abstractions (8.0.0)
- Franz.Common.Messaging – core messaging abstractions
- Franz.Common.Messaging.RabbitMQ – RabbitMQ transport adapter
- Franz.Common.Messaging.Hosting – base hosting abstractions
🚀 Usage
1. Register RabbitMQ Hosted Services
In Program.cs or Startup.cs:
using Franz.Common.Messaging.Hosting.RabbitMQ.Extensions;
var host = Host.CreateDefaultBuilder(args)
.ConfigureServices((context, services) =>
{
services.AddRabbitMQHostedListener(opts =>
{
opts.ConnectionString = context.Configuration["RabbitMQ:ConnectionString"];
opts.ExchangeName = context.Configuration["RabbitMQ:ExchangeName"];
});
services.AddOutboxHostedListener(opts =>
{
opts.OutboxTable = context.Configuration["Outbox:TableName"];
});
})
.Build();
await host.RunAsync();
2. RabbitMQ Hosted Service
Runs in the background to consume RabbitMQ messages and dispatch them via the mediator:
public class RabbitMQHostedService : BackgroundService
{
protected override async Task ExecuteAsync(CancellationToken stoppingToken)
{
// Consumes RabbitMQ messages and dispatches
}
}
3. Outbox Hosted Service
Ensures pending messages in MongoDB/SQL outbox are published to RabbitMQ reliably:
public class OutboxHostedService : BackgroundService
{
protected override async Task ExecuteAsync(CancellationToken stoppingToken)
{
// Reads outbox, sends to RabbitMQ, handles retries/DLQ
}
}
📊 Observability
- Emoji logging (✅ processed, ⚠️ retry, 🔥 DLQ, 💤 idle).
- Integrated with
MessageContextAccessorfor correlation IDs. - Tracing compatible with OpenTelemetry.
📝 Version Information
- Current Version: 1.7.0
- Part of the private Franz Framework ecosystem.
📜 License
This library is licensed under the MIT License. See the LICENSE file for details.
📖 Changelog
Version 1.6.2
- Introduced
RabbitMQHostedServiceto run RabbitMQ listeners inside .NET host. - Added
OutboxHostedServiceto bridge Mongo/SQL outbox with RabbitMQ publishing. - Added
RabbitMQHostingServiceCollectionExtensionsfor simple DI registration. - Unified hosted services with
MessageContextAccessorand inbox idempotency support. - Improved logging with emoji conventions and OpenTelemetry hooks.
Version 1.6.20
- Updated to .NET 10.0
| 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
- Franz.Common.Hosting (>= 1.7.0)
- Franz.Common.Messaging (>= 1.7.0)
- Franz.Common.Messaging.Hosting (>= 1.7.0)
- Franz.Common.Messaging.RabbitMQ (>= 1.7.0)
- RabbitMQ.Client (>= 7.2.0)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on Franz.Common.Messaging.Hosting.RabbitMQ:
| Package | Downloads |
|---|---|
|
Franz.Common.Messaging.Hosting.Mediator
Shared utility library for the Franz Framework. |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 2.1.1 | 42 | 4/22/2026 |
| 2.0.2 | 115 | 3/30/2026 |
| 2.0.1 | 105 | 3/29/2026 |
| 1.7.8 | 116 | 3/2/2026 |
| 1.7.7 | 123 | 1/31/2026 |
| 1.7.6 | 119 | 1/22/2026 |
| 1.7.5 | 122 | 1/10/2026 |
| 1.7.4 | 117 | 12/27/2025 |
| 1.7.3 | 196 | 12/22/2025 |
| 1.7.2 | 199 | 12/21/2025 |
| 1.7.1 | 150 | 12/20/2025 |
| 1.7.0 | 291 | 12/16/2025 |
| 1.6.21 | 220 | 11/27/2025 |
| 1.6.20 | 225 | 11/24/2025 |
| 1.0.0 | 196 | 10/7/2025 |