NetEvolve.Pulse.AzureServiceBus 0.67.36

Prefix Reserved
dotnet add package NetEvolve.Pulse.AzureServiceBus --version 0.67.36
                    
NuGet\Install-Package NetEvolve.Pulse.AzureServiceBus -Version 0.67.36
                    
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="NetEvolve.Pulse.AzureServiceBus" Version="0.67.36" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="NetEvolve.Pulse.AzureServiceBus" Version="0.67.36" />
                    
Directory.Packages.props
<PackageReference Include="NetEvolve.Pulse.AzureServiceBus" />
                    
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 NetEvolve.Pulse.AzureServiceBus --version 0.67.36
                    
#r "nuget: NetEvolve.Pulse.AzureServiceBus, 0.67.36"
                    
#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 NetEvolve.Pulse.AzureServiceBus@0.67.36
                    
#: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=NetEvolve.Pulse.AzureServiceBus&version=0.67.36
                    
Install as a Cake Addin
#tool nuget:?package=NetEvolve.Pulse.AzureServiceBus&version=0.67.36
                    
Install as a Cake Tool

NetEvolve.Pulse.AzureServiceBus

NuGet Version NuGet Downloads License

Native Azure Service Bus transport for Pulse outbox delivery with dynamic topic routing, batching, managed identity, and built-in health checks.

Features

  • Dynamic Topic Routing: Route outbox events to different queues or topics using ITopicNameResolver based on message content or metadata.
  • Connection Flexibility: Use a connection string or DefaultAzureCredential with a fully qualified namespace.
  • Batching: Toggle batch sending per outbox batch to reduce broker calls. Messages are automatically grouped by resolved topic name for efficient batching.
  • Health Checks: Reports transport availability by checking the Service Bus client's local closed/open state (does not verify network connectivity to Azure Service Bus).
  • Dependency Injection: Single call UseAzureServiceBusTransport wires the Service Bus client and transport.
  • Env/Emulator Friendly: Works with Azure-hosted namespaces, dev tunnels, or local emulator connection strings.

Installation

.NET CLI

dotnet add package NetEvolve.Pulse.AzureServiceBus

PackageReference

<PackageReference Include="NetEvolve.Pulse.AzureServiceBus" Version="x.x.x" />

Quick Start

using Microsoft.Extensions.DependencyInjection;
using NetEvolve.Pulse;

var services = new ServiceCollection();

services.AddPulse(config => config.UseAzureServiceBusTransport(options =>
{
    options.ConnectionString = builder.Configuration["ServiceBus:ConnectionString"];
    options.EnableBatching = true;
}));

Managed Identity Example

services.AddPulse(config => config.UseAzureServiceBusTransport(options =>
{
    options.FullyQualifiedNamespace = "contoso.servicebus.windows.net";
}));

Topic Name Resolution

The transport uses ITopicNameResolver to determine the destination queue or topic name for each outbox message. By default, the DefaultTopicNameResolver extracts the simple class name from the event type (e.g., "MyApp.Events.OrderCreated""OrderCreated").

You can provide a custom resolver to implement different routing strategies:

public class CustomTopicNameResolver : ITopicNameResolver
{
    public string Resolve(OutboxMessage message)
    {
        // Route based on event type, metadata, or other logic
        return message.EventType.Contains("Order") ? "orders-topic" : "events-topic";
    }
}

// Register the custom resolver
services.AddSingleton<ITopicNameResolver, CustomTopicNameResolver>();

Configuration

Option Description
ConnectionString Connection string for the Service Bus namespace. Required when FullyQualifiedNamespace is not set.
FullyQualifiedNamespace FQDN (e.g., contoso.servicebus.windows.net) used with managed identity (DefaultAzureCredential).
EnableBatching Enables batch sending per outbox batch. Messages are grouped by resolved topic name for efficient batching. Defaults to true.

Health Checks

AzureServiceBusMessageTransport.IsHealthyAsync checks if the Service Bus client is operational by verifying the client is not closed. This only inspects the local state of the client and does not verify actual network connectivity to Azure Service Bus. Operators should be aware that a healthy state here does not guarantee remote connectivity.

Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 is compatible.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  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

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
0.67.36 125 5/10/2026