Kck.EventBus.Abstractions
3.4.0
dotnet add package Kck.EventBus.Abstractions --version 3.4.0
NuGet\Install-Package Kck.EventBus.Abstractions -Version 3.4.0
<PackageReference Include="Kck.EventBus.Abstractions" Version="3.4.0" />
<PackageVersion Include="Kck.EventBus.Abstractions" Version="3.4.0" />
<PackageReference Include="Kck.EventBus.Abstractions" />
paket add Kck.EventBus.Abstractions --version 3.4.0
#r "nuget: Kck.EventBus.Abstractions, 3.4.0"
#:package Kck.EventBus.Abstractions@3.4.0
#addin nuget:?package=Kck.EventBus.Abstractions&version=3.4.0
#tool nuget:?package=Kck.EventBus.Abstractions&version=3.4.0
Kck.EventBus.Abstractions
Event-driven messaging abstractions with pub/sub pattern — IEventBus, IEventHandler<TEvent>, and IntegrationEvent base record for InMemory, RabbitMQ, or Azure Service Bus providers.
Installation
dotnet add package Kck.EventBus.Abstractions
Quick Start
// 1. Define an integration event
public record OrderPlacedEvent(Guid OrderId, string CustomerEmail) : IntegrationEvent;
// 2. Implement a handler
public class SendOrderConfirmationHandler(IEmailService email)
: IEventHandler<OrderPlacedEvent>
{
public async Task HandleAsync(OrderPlacedEvent @event, CancellationToken ct)
=> await email.SendAsync(new EmailMessage
{
To = @event.CustomerEmail,
Subject = "Order confirmed",
Body = $"Your order {@event.OrderId} has been placed."
}, ct);
}
// Program.cs — register provider + subscribe handlers
builder.Services.AddKckInMemoryEventBus(bus =>
{
bus.Subscribe<OrderPlacedEvent, SendOrderConfirmationHandler>();
});
// Publish from a handler/service
public class PlaceOrderHandler(IEventBus eventBus)
{
public async Task HandleAsync(PlaceOrderCommand cmd, CancellationToken ct)
{
// ... save order ...
await eventBus.PublishAsync(new OrderPlacedEvent(order.Id, cmd.CustomerEmail), ct);
}
}
Configuration
| Property | Description | Default |
|---|---|---|
EventBus:Provider |
InMemory, RabbitMq, AzureServiceBus |
InMemory |
EventBus:RetryCount |
Publish retry attempts on transient errors | 3 |
Resources
| 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.DependencyInjection.Abstractions (>= 10.0.8)
- Microsoft.Extensions.Logging.Abstractions (>= 10.0.8)
NuGet packages (5)
Showing the top 5 NuGet packages that depend on Kck.EventBus.Abstractions:
| Package | Downloads |
|---|---|
|
Kck.EventBus.InMemory
In-process IEventBus implementation for development and testing. Dispatches integration events synchronously within the same process. Not suitable for distributed scenarios. Registered via builder.UseInMemory(). |
|
|
Kck.Bundle.WebApi
Opinionated ASP.NET Core WebAPI starter pack. Registers Serilog, in-memory caching, JWT auth, Argon2 hashing, InMemory event bus, OpenTelemetry, rate limiting, security headers, CORS, and global exception handling in a single AddKckWebApiDefaults() call. |
|
|
Kck.Bundle.WorkerService
Opinionated .NET Worker Service starter pack. Registers Serilog, OpenTelemetry, InMemory event bus, and a mutually-exclusive background job scheduler (Hangfire or Quartz) in a single call. |
|
|
Kck.EventBus.AzureServiceBus
Azure Service Bus-backed IEventBus for reliable cloud messaging. Supports topic/subscription model with configurable MaxConcurrentCalls, auto lock renewal, and retry policy. Registered via builder.UseAzureServiceBus(). |
|
|
Kck.EventBus.RabbitMq
RabbitMQ-backed IEventBus using AMQP topic exchanges. Supports durable exchanges, per-event queues, configurable retry with exponential backoff, and consumer health checks. Registered via builder.UseRabbitMq(). |
GitHub repositories
This package is not used by any popular GitHub repositories.