Runax.Messaging.Transports.Azure.ServiceBus
2.0.0
dotnet add package Runax.Messaging.Transports.Azure.ServiceBus --version 2.0.0
NuGet\Install-Package Runax.Messaging.Transports.Azure.ServiceBus -Version 2.0.0
<PackageReference Include="Runax.Messaging.Transports.Azure.ServiceBus" Version="2.0.0" />
<PackageVersion Include="Runax.Messaging.Transports.Azure.ServiceBus" Version="2.0.0" />
<PackageReference Include="Runax.Messaging.Transports.Azure.ServiceBus" />
paket add Runax.Messaging.Transports.Azure.ServiceBus --version 2.0.0
#r "nuget: Runax.Messaging.Transports.Azure.ServiceBus, 2.0.0"
#:package Runax.Messaging.Transports.Azure.ServiceBus@2.0.0
#addin nuget:?package=Runax.Messaging.Transports.Azure.ServiceBus&version=2.0.0
#tool nuget:?package=Runax.Messaging.Transports.Azure.ServiceBus&version=2.0.0
Runax.Messaging.Transports.Azure.ServiceBus
Azure Service Bus transport for Runax.Messaging. A topic maps to a Service Bus topic for publishing and to a subscription for consuming.
Install
dotnet add package Runax.Messaging
dotnet add package Runax.Messaging.Transports.Azure.ServiceBus
Register
Attach the transport to a bus with its config object:
using Runax.Messaging;
using Runax.Messaging.Transports.Azure.ServiceBus;
builder.Services.AddRunaxMessaging(messaging =>
{
messaging.AddBus(bus =>
{
bus.AddTransport(new AzureServiceBusConfig
{
ConnectionString = "<your Service Bus connection string>",
TopicSubscriptionMap =
{
["orders.placed"] = "orders-worker", // topic -> subscription
},
});
bus.AddConsumer<OrderPlacedConsumer>();
});
});
AzureServiceBusConfig lives in the Runax.Messaging.Transports.Azure.ServiceBus namespace, so add
that using. The config is validated at startup (DataAnnotations, when the AddBus block
completes); bind it from an IConfiguration section instead of setting properties:
bus.AddTransport<AzureServiceBusConfig>(builder.Configuration.GetSection("ServiceBus")).
Provision the topics and subscriptions ahead of time.
Config
Set these directly on AzureServiceBusConfig.
| Property | Meaning | Default | Required? |
|---|---|---|---|
ConnectionString |
Service Bus connection string. | (none) | Yes |
TopicSubscriptionMap |
Topic → subscription used to consume it. | empty | To consume a topic |
MaxConcurrentCalls |
Messages processed concurrently per subscription. | 1 |
No |
RegisterHealthCheck |
Auto-register the runax:{bus} health check (inherited from TransportConfig). |
true |
No |
Beyond the transport config, settings from the core package apply to the bus that runs this
transport — AddConsumer<T>(), WithRetry(...), OnUnroutableMessage(...),
ConfigureSerialization(...), and UseSerializer<T>() — all inside the same AddBus block.
See Configuration & per-bus settings.
Behavior
- Publish sends the serialized envelope to the Service Bus topic named after the runax topic.
- Subscribe runs a
ServiceBusProcessorper topic over its mapped subscription and maps the dispatch verdict to the message:Acknowledge→ completeRequeue→ abandon (returned for redelivery)DeadLetter→ dead-letter (Service Bus's native dead-letter queue for the subscription)
Health check
A check named runax:{bus} is registered automatically for each bus that runs this transport
(RegisterHealthCheck = false on the config to opt out). The check fetches namespace properties
through the management endpoint, so it requires management access to the namespace.
Telemetry
The transport reports messaging.system = "servicebus" on the spans and metrics emitted by the core
package (activity source / meter "Runax.Messaging"); the messaging.runax.bus tag identifies
the bus.
License
MIT
| 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
- Azure.Core (>= 1.62.0)
- Azure.Messaging.ServiceBus (>= 7.20.2)
- Microsoft.Extensions.Configuration (>= 10.0.11)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 10.0.11)
- Microsoft.Extensions.Diagnostics.HealthChecks (>= 10.0.10)
- Microsoft.Extensions.Hosting.Abstractions (>= 10.0.10)
- Microsoft.Extensions.Logging.Abstractions (>= 10.0.11)
- Microsoft.Extensions.Options (>= 10.0.10)
- Microsoft.Extensions.Options.ConfigurationExtensions (>= 10.0.10)
- Microsoft.Extensions.Options.DataAnnotations (>= 10.0.10)
- Runax.Messaging.Abstractions (>= 2.0.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.