Rwx.EventBus.Abstractions
0.3.1
dotnet add package Rwx.EventBus.Abstractions --version 0.3.1
NuGet\Install-Package Rwx.EventBus.Abstractions -Version 0.3.1
<PackageReference Include="Rwx.EventBus.Abstractions" Version="0.3.1" />
<PackageVersion Include="Rwx.EventBus.Abstractions" Version="0.3.1" />
<PackageReference Include="Rwx.EventBus.Abstractions" />
paket add Rwx.EventBus.Abstractions --version 0.3.1
#r "nuget: Rwx.EventBus.Abstractions, 0.3.1"
#:package Rwx.EventBus.Abstractions@0.3.1
#addin nuget:?package=Rwx.EventBus.Abstractions&version=0.3.1
#tool nuget:?package=Rwx.EventBus.Abstractions&version=0.3.1
Rwx.EventBus.Abstractions
Integration-event, publisher, handler, transport, inbox, topology, and telemetry contracts for optional messaging.
Install
dotnet add package Rwx.EventBus.Abstractions --version 0.1.0
Application code publishes through IIntegrationEventPublisher and handles events with IIntegrationEventHandler<TEvent> from Rwx.EventBus.Events. A messaging host registers handlers explicitly:
using Rwx.EventBus.DependencyInjection;
builder.Services.AddIntegrationEventHandlers(typeof(OrderPlacedHandler).Assembly);
Rwx.EventBus.RabbitMq provides the RabbitMQ transport. Pair the abstraction with Rwx.Persistence.EfCore's inbox registration when duplicate-delivery protection is required.
A handler that needs the raw transport headers of the event it is processing (e.g. the OrgId/UserId/DepartmentId metadata Rwx.Security's AddRwxEventBusSecurityEnrichment() adds on publish) can inject IncomingEventContext, populated per delivery before handlers run:
public sealed class OrderPlacedHandler(IncomingEventContext incomingEvent) : IIntegrationEventHandler<OrderPlaced>
{
public Task Handle(OrderPlaced integrationEvent, CancellationToken cancellationToken)
{
Guid? publisherOrgId = incomingEvent.TryGetGuid(EventBusMetadataHeaders.OrgId);
// ...
}
}
Boundaries
Delivery is at-least-once. Handlers must be idempotent and must not reference a transport SDK directly.
IncomingEventContext headers are contextual metadata from a message a peer service published, not an authenticated identity: never feed them into ICurrentPrincipalAccessor or an authorization decision. Use them for correlation, filtering, or audit logging only; authenticate and authorize independently wherever a handler needs to trust who is behind an org or user id.
| 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.Configuration.Abstractions (>= 10.0.9)
- Microsoft.Extensions.DependencyInjection (>= 10.0.9)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 10.0.9)
- Microsoft.Extensions.Hosting.Abstractions (>= 10.0.9)
- Microsoft.Extensions.Logging (>= 10.0.9)
- Microsoft.Extensions.Logging.Abstractions (>= 10.0.9)
- Rwx.UnitOfWork (>= 0.3.1)
- Scrutor (>= 7.0.0)
NuGet packages (10)
Showing the top 5 NuGet packages that depend on Rwx.EventBus.Abstractions:
| Package | Downloads |
|---|---|
|
Rwx.Security
Package Description |
|
|
Rwx.Outbox
Package Description |
|
|
Rwx.EventBus.RabbitMq
Package Description |
|
|
Rwx.Outbox.Persistence.EfCore
Package Description |
|
|
Rwx.Persistence.EfCore
Package Description |
GitHub repositories
This package is not used by any popular GitHub repositories.