Rwx.EventBus.RabbitMq
0.3.1
dotnet add package Rwx.EventBus.RabbitMq --version 0.3.1
NuGet\Install-Package Rwx.EventBus.RabbitMq -Version 0.3.1
<PackageReference Include="Rwx.EventBus.RabbitMq" Version="0.3.1" />
<PackageVersion Include="Rwx.EventBus.RabbitMq" Version="0.3.1" />
<PackageReference Include="Rwx.EventBus.RabbitMq" />
paket add Rwx.EventBus.RabbitMq --version 0.3.1
#r "nuget: Rwx.EventBus.RabbitMq, 0.3.1"
#:package Rwx.EventBus.RabbitMq@0.3.1
#addin nuget:?package=Rwx.EventBus.RabbitMq&version=0.3.1
#tool nuget:?package=Rwx.EventBus.RabbitMq&version=0.3.1
Rwx.EventBus.RabbitMq
RabbitMQ transport for IEventBus, with integration-event type discovery, topology conventions, W3C trace propagation, retries/dead-letter configuration, and health checks.
Install
dotnet add package Rwx.EventBus.RabbitMq --version 0.1.0
Quick start
using Rwx.EventBus.RabbitMq;
builder.Services.AddRwxMessaging(builder.Configuration, typeof(OrderPlaced).Assembly);
builder.Services.AddIntegrationEventHandlers(typeof(OrderPlacedHandler).Assembly);
builder.Services.AddHealthChecks()
.AddRwxMessagingHealthCheck();
{
"RabbitMq": {
"HostName": "localhost",
"Port": 5672,
"UserName": "guest",
"Password": "guest",
"ClientId": "ordering-api",
"Consumer": {
"QueueGroup": "ordering",
"PrefetchCount": 16
}
},
"DeadLetter": {
"MaxRetryCount": 5,
"ImmediateRetryCount": 2,
"RetryDelays": ["00:00:05", "00:00:30", "00:05:00"],
"RetryableExceptionTypes": ["Npgsql.NpgsqlException"]
}
}
Transient failures (TimeoutException, HttpRequestException, IOException, and DbException)
are retried immediately up to ImmediateRetryCount, then delayed using shared RabbitMQ TTL queues
(one per distinct interval). Add provider-specific transient exception type names when necessary.
All other exceptions go directly to the topic's dead-letter queue.
ClientId and Consumer:QueueGroup are mandatory and validated at startup. Pass every assembly that declares concrete IntegrationEvent records. Integration handlers are registered explicitly via Rwx.EventBus.DependencyInjection.AddIntegrationEventHandlers; for consumers and topology initialization, add the separate Rwx.EventBus.RabbitMq.Worker package to a background host.
Boundaries
This is a transport adapter for IEventBus; application handlers must not use RabbitMQ.Client directly. Delivery is at-least-once, so design all integration-event handlers to be idempotent and configure the durable inbox when required. Publishing reliably with database changes requires the outbox adapter and relay worker.
| 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
- Microsoft.Extensions.Configuration.Abstractions (>= 10.0.9)
- Microsoft.Extensions.DependencyInjection (>= 10.0.9)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 10.0.9)
- Microsoft.Extensions.Diagnostics.HealthChecks (>= 10.0.8)
- Microsoft.Extensions.Hosting.Abstractions (>= 10.0.9)
- Microsoft.Extensions.Logging (>= 10.0.9)
- Microsoft.Extensions.Logging.Abstractions (>= 10.0.9)
- Microsoft.Extensions.Options.ConfigurationExtensions (>= 10.0.9)
- RabbitMQ.Client (>= 7.2.1)
- Rwx.Core (>= 0.3.1)
- Rwx.EventBus.Abstractions (>= 0.3.1)
- Scrutor (>= 7.0.0)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on Rwx.EventBus.RabbitMq:
| Package | Downloads |
|---|---|
|
Rwx.EventBus.RabbitMq.Worker
Package Description |
GitHub repositories
This package is not used by any popular GitHub repositories.