OpinionatedEventing.Abstractions
0.9.0
dotnet add package OpinionatedEventing.Abstractions --version 0.9.0
NuGet\Install-Package OpinionatedEventing.Abstractions -Version 0.9.0
<PackageReference Include="OpinionatedEventing.Abstractions" Version="0.9.0" />
<PackageVersion Include="OpinionatedEventing.Abstractions" Version="0.9.0" />
<PackageReference Include="OpinionatedEventing.Abstractions" />
paket add OpinionatedEventing.Abstractions --version 0.9.0
#r "nuget: OpinionatedEventing.Abstractions, 0.9.0"
#:package OpinionatedEventing.Abstractions@0.9.0
#addin nuget:?package=OpinionatedEventing.Abstractions&version=0.9.0
#tool nuget:?package=OpinionatedEventing.Abstractions&version=0.9.0
OpinionatedEventing.Abstractions
Pure contracts for the OpinionatedEventing library suite — marker interfaces, handler contracts, and base types. No NuGet dependencies.
Reference this package from domain and application assemblies that only need messaging contracts. Composition-root and infrastructure assemblies should reference OpinionatedEventing instead.
Installation
dotnet add package OpinionatedEventing.Abstractions
What's included
| Type | Purpose |
|---|---|
IEvent |
Marker interface for fan-out domain/integration events |
ICommand |
Marker interface for point-to-point commands |
IEventHandler<TEvent> |
Handle an event (multiple registrations allowed per type) |
ICommandHandler<TCommand> |
Handle a command (exactly one registration per type) |
IPublisher |
Write events and commands to the outbox |
IMessagingContext |
Ambient correlation and causation identifiers for the current handler scope |
IMessageHandlerRunner |
Dispatches inbound messages to their registered handler(s) |
IAggregateRoot |
Marks a class as a DDD aggregate root that collects domain events |
AggregateRoot |
Convenience base class implementing IAggregateRoot |
IConsumerPauseController |
Controls whether broker consumer workers should pause |
IOutboxStore |
Persistence contract for the outbox |
OutboxMessage |
Represents a message stored in the outbox pending delivery |
MessageTopicAttribute |
Overrides the default broker topic name for an IEvent |
MessageQueueAttribute |
Overrides the default broker queue name for an ICommand |
Quick start
Define your messages in a contracts assembly:
// Events fan out to all registered handlers
public record OrderPlaced(Guid OrderId, decimal Total) : IEvent;
// Commands go to exactly one handler
public record ShipOrder(Guid OrderId) : ICommand;
Implement handlers in an application assembly:
public class OrderPlacedHandler : IEventHandler<OrderPlaced>
{
public Task HandleAsync(OrderPlaced @event, CancellationToken ct)
{
// ...
return Task.CompletedTask;
}
}
Wire up DI and the runtime in your composition root using OpinionatedEventing:
builder.Services
.AddOpinionatedEventing()
.AddHandlersFromAssemblies(Assembly.GetExecutingAssembly());
Repository
| 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
- No dependencies.
-
net8.0
- No dependencies.
-
net9.0
- No dependencies.
NuGet packages (1)
Showing the top 1 NuGet packages that depend on OpinionatedEventing.Abstractions:
| Package | Downloads |
|---|---|
|
OpinionatedEventing
Runtime hosting package for OpinionatedEventing — MessageHandlerRunner, MessagingContext, DI extensions, diagnostics, and options. Reference this package from composition-root/infrastructure assemblies. |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 0.9.0 | 251 | 5/8/2026 |