NetEvolve.Pulse.Kafka
0.67.36
Prefix Reserved
dotnet add package NetEvolve.Pulse.Kafka --version 0.67.36
NuGet\Install-Package NetEvolve.Pulse.Kafka -Version 0.67.36
<PackageReference Include="NetEvolve.Pulse.Kafka" Version="0.67.36" />
<PackageVersion Include="NetEvolve.Pulse.Kafka" Version="0.67.36" />
<PackageReference Include="NetEvolve.Pulse.Kafka" />
paket add NetEvolve.Pulse.Kafka --version 0.67.36
#r "nuget: NetEvolve.Pulse.Kafka, 0.67.36"
#:package NetEvolve.Pulse.Kafka@0.67.36
#addin nuget:?package=NetEvolve.Pulse.Kafka&version=0.67.36
#tool nuget:?package=NetEvolve.Pulse.Kafka&version=0.67.36
NetEvolve.Pulse.Kafka
Apache Kafka transport for the NetEvolve.Pulse outbox processor.
Delivers outbox messages directly to Kafka topics using the Confluent.Kafka producer.
Getting Started
Register the Confluent.Kafka producer and admin client in DI, then call UseKafkaTransport():
// 1. Register the Confluent.Kafka producer (user's responsibility)
services.AddSingleton<IProducer<string, string>>(sp =>
new ProducerBuilder<string, string>(
new ProducerConfig { BootstrapServers = "localhost:9092", Acks = Acks.All })
.Build());
// 2. Register the admin client (used for health checks)
services.AddSingleton<IAdminClient>(sp =>
new AdminClientBuilder(
new AdminClientConfig { BootstrapServers = "localhost:9092" })
.Build());
// 3. Register the Pulse Kafka transport
services.AddPulse(config => config.AddOutbox().UseKafkaTransport());
Topic Routing
Topic names are resolved by the registered ITopicNameResolver. The default implementation
(registered by AddOutbox()) extracts the simple class name from OutboxMessage.EventType,
e.g. "MyApp.Events.OrderCreated, MyApp" → "OrderCreated".
Register a custom ITopicNameResolver before calling UseKafkaTransport() to override:
services.AddSingleton<ITopicNameResolver, MyCustomTopicNameResolver>();
services.AddPulse(config => config.AddOutbox().UseKafkaTransport());
Notes
IProducer<string, string>andIAdminClientmust be registered by the caller.IsHealthyAsyncqueries cluster metadata; returnsfalsewhen the broker is unreachable.
| Product | Versions 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. |
-
net10.0
- Confluent.Kafka (>= 2.14.0)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 10.0.7)
- Microsoft.Extensions.Options (>= 10.0.7)
- NetEvolve.Pulse.Extensibility (>= 0.67.36)
-
net8.0
- Confluent.Kafka (>= 2.14.0)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 10.0.7)
- Microsoft.Extensions.Options (>= 10.0.7)
- NetEvolve.Pulse.Extensibility (>= 0.67.36)
-
net9.0
- Confluent.Kafka (>= 2.14.0)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 10.0.7)
- Microsoft.Extensions.Options (>= 10.0.7)
- NetEvolve.Pulse.Extensibility (>= 0.67.36)
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 | 48 | 5/10/2026 |