eQuantic.Core.Eventing
1.8.2
See the version list below for details.
dotnet add package eQuantic.Core.Eventing --version 1.8.2
NuGet\Install-Package eQuantic.Core.Eventing -Version 1.8.2
<PackageReference Include="eQuantic.Core.Eventing" Version="1.8.2" />
<PackageVersion Include="eQuantic.Core.Eventing" Version="1.8.2" />
<PackageReference Include="eQuantic.Core.Eventing" />
paket add eQuantic.Core.Eventing --version 1.8.2
#r "nuget: eQuantic.Core.Eventing, 1.8.2"
#:package eQuantic.Core.Eventing@1.8.2
#addin nuget:?package=eQuantic.Core.Eventing&version=1.8.2
#tool nuget:?package=eQuantic.Core.Eventing&version=1.8.2
eQuantic.Core.Eventing
Base eventing abstractions for the eQuantic ecosystem. Provides shared interfaces for event-driven architectures.
Installation
dotnet add package eQuantic.Core.Eventing
Core Interfaces
| Interface | Description |
|---|---|
IEvent |
Base marker for all events |
IEventHandler<TEvent> |
Handler for a specific event type |
IEventDispatcher |
Dispatches events to handlers |
IEventSource |
Entity that can raise events |
Usage
Define an Event
public record OrderPlacedEvent : EventBase
{
public Guid OrderId { get; init; }
public decimal TotalAmount { get; init; }
}
Create a Handler
public class OrderPlacedHandler : IEventHandler<OrderPlacedEvent>
{
public async Task HandleAsync(OrderPlacedEvent @event, CancellationToken ct)
{
// Handle the event
Console.WriteLine($"Order {event.OrderId} placed for ${event.TotalAmount}");
}
}
Register Services
services.AddEventDispatcher(EventDispatchStrategy.WhenAll);
services.AddEventHandler<OrderPlacedEvent, OrderPlacedHandler>();
Dispatch Events
await dispatcher.DispatchAsync(new OrderPlacedEvent
{
OrderId = Guid.NewGuid(),
TotalAmount = 99.99m
});
Event-Sourced Entities
public class Order : EventSourceBase
{
public void Place(decimal amount)
{
// Business logic...
AddEvent(new OrderPlacedEvent { OrderId = Id, TotalAmount = amount });
}
}
// After saving:
var events = order.GetUncommittedEvents();
await dispatcher.DispatchAsync(events);
order.ClearUncommittedEvents();
Ecosystem Integration
This package is the foundation for:
- eQuantic.Core.CQS -
INotification : IEvent - eQuantic.Core.DomainEvents -
IDomainEvent : IEvent
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 is compatible. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. 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 was computed. 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. |
| .NET Core | netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.1 is compatible. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.1
-
net10.0
-
net6.0
-
net8.0
NuGet packages (7)
Showing the top 5 NuGet packages that depend on eQuantic.Core.Eventing:
| Package | Downloads |
|---|---|
|
eQuantic.Core.CQS.Abstractions
Interfaces and abstractions for eQuantic.Core.CQS - Commands, Queries, Handlers, Sagas, Outbox, and Scheduling contracts |
|
|
eQuantic.Core.Eventing.RabbitMQ
RabbitMQ integration for eQuantic.Core.Eventing. Provides IExternalEventPublisher implementation for RabbitMQ. |
|
|
eQuantic.Core.Eventing.AWS
AWS SNS integration for eQuantic.Core.Eventing. Provides IExternalEventPublisher implementation for AWS SNS. |
|
|
eQuantic.Core.Eventing.Azure
Azure Service Bus integration for eQuantic.Core.Eventing. Provides IExternalEventPublisher implementation for Azure Service Bus. |
|
|
eQuantic.Core.Eventing.Outbox
Outbox pattern abstractions for eQuantic.Core.Eventing. Provides transactional event publishing with guaranteed delivery. |
GitHub repositories
This package is not used by any popular GitHub repositories.