WalFlow.Sinks.AzureServiceBus
0.1.0-alpha.alpha.20260708090623
dotnet add package WalFlow.Sinks.AzureServiceBus --version 0.1.0-alpha.alpha.20260708090623
NuGet\Install-Package WalFlow.Sinks.AzureServiceBus -Version 0.1.0-alpha.alpha.20260708090623
<PackageReference Include="WalFlow.Sinks.AzureServiceBus" Version="0.1.0-alpha.alpha.20260708090623" />
<PackageVersion Include="WalFlow.Sinks.AzureServiceBus" Version="0.1.0-alpha.alpha.20260708090623" />
<PackageReference Include="WalFlow.Sinks.AzureServiceBus" />
paket add WalFlow.Sinks.AzureServiceBus --version 0.1.0-alpha.alpha.20260708090623
#r "nuget: WalFlow.Sinks.AzureServiceBus, 0.1.0-alpha.alpha.20260708090623"
#:package WalFlow.Sinks.AzureServiceBus@0.1.0-alpha.alpha.20260708090623
#addin nuget:?package=WalFlow.Sinks.AzureServiceBus&version=0.1.0-alpha.alpha.20260708090623&prerelease
#tool nuget:?package=WalFlow.Sinks.AzureServiceBus&version=0.1.0-alpha.alpha.20260708090623&prerelease
WalFlow.Sinks.AzureServiceBus
Azure Service Bus sink for WalFlow.
Supported Targets
QueueTopic
Configuration
{
"AzureServiceBusSink": {
"ConnectionString": "Endpoint=sb://...",
"EntityType": "Topic",
"TopicName": "walflow-cdc",
"IncludeApplicationProperties": true,
"PartitionKeyStrategy": "Table"
}
}
Inline DI Registration
using WalFlow.Abstractions.Sinks;
services.AddSingleton<ISink>(sp =>
{
var options = Options.Create(new AzureServiceBusSinkOptions
{
ConnectionString = "Endpoint=sb://...",
EntityType = AzureServiceBusEntityType.Topic,
TopicName = "walflow-cdc"
});
return new AzureServiceBusSink(
options,
sp.GetRequiredService<ILogger<AzureServiceBusSink>>(),
SinkPartitionResolvers.Table());
});
Duplicate Detection Message IDs
Azure Service Bus duplicate detection is configured on the target queue or topic. WalFlow can supply the provider-native MessageId used by that feature through a code-defined idempotency resolver:
services.AddSingleton<ISink>(sp =>
{
var options = Options.Create(new AzureServiceBusSinkOptions
{
ConnectionString = "Endpoint=sb://...",
EntityType = AzureServiceBusEntityType.Topic,
TopicName = "walflow-cdc"
});
return new AzureServiceBusSink(
options,
sp.GetRequiredService<ILogger<AzureServiceBusSink>>(),
SinkPartitionResolvers.Table(),
payloadTransformer: null,
messageIdResolver: SinkIdempotencyKeyResolvers.FromDelegate(payload =>
$"{payload.Source?.Name}:{payload.Source?.Schema}.{payload.Source?.Table}:{payload.Source?.Lsn}:{payload.Operation}:{payload.Transaction?.TotalOrder}:{payload.After?["id"] ?? payload.Before?["id"]}"));
});
Resolved IDs must identify one logical event within the entity's duplicate-detection window and must not exceed the Azure Service Bus 128-character MessageId limit.
For partitioned queues or topics, Azure Service Bus duplicate detection uses MessageId plus PartitionKey, so the partition resolver must return a stable key for the same logical event.
| 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.Messaging.ServiceBus (>= 7.20.1)
- Microsoft.Extensions.DependencyInjection (>= 10.0.9)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 10.0.9)
- Microsoft.Extensions.Logging (>= 10.0.9)
- Microsoft.Extensions.Logging.Abstractions (>= 10.0.9)
- Microsoft.Extensions.Options (>= 10.0.9)
- WalFlow.Abstractions (>= 0.1.0-alpha.alpha.20260708090623)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on WalFlow.Sinks.AzureServiceBus:
| Package | Downloads |
|---|---|
|
WalFlow
Meta-package that pulls in the full WalFlow CDC stack for consumers who want the default everything-included setup. |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 0.1.0-alpha.alpha... | 83 | 7/8/2026 |
| 0.1.0-alpha.alpha... | 86 | 3/30/2026 |