Mubai.EventBus
0.2.0
dotnet add package Mubai.EventBus --version 0.2.0
NuGet\Install-Package Mubai.EventBus -Version 0.2.0
<PackageReference Include="Mubai.EventBus" Version="0.2.0" />
<PackageVersion Include="Mubai.EventBus" Version="0.2.0" />
<PackageReference Include="Mubai.EventBus" />
paket add Mubai.EventBus --version 0.2.0
#r "nuget: Mubai.EventBus, 0.2.0"
#:package Mubai.EventBus@0.2.0
#addin nuget:?package=Mubai.EventBus&version=0.2.0
#tool nuget:?package=Mubai.EventBus&version=0.2.0
Mubai.EventBus
English | 简体中文
Core abstractions for an event-driven architecture in .NET: event base types, handler contracts, and a minimal IEventBus interface. Designed for modular monoliths and integration-style messaging without prescribing a specific transport.
Highlights
- Simple contracts:
IntegrationEvent,IEventBus,IIntegrationEventHandler<TEvent>. - Event name routing: optional
EventNameAttributeto decouple wire names from CLR type names. - Transport-agnostic: implement your own bus or pair with
Mubai.EventBus.InMemoryfor in-process dispatch. - DI friendly: handlers are designed to be resolved via dependency injection.
Install
dotnet add package Mubai.EventBus
Quick start
Define an event:
using Mubai.EventBus.Events;
public record OrderCreated(Guid OrderId)
: IntegrationEvent(); // uses default Id/OccurredOn
Implement a handler:
using Mubai.EventBus.Abstractions;
public sealed class OrderCreatedHandler : IIntegrationEventHandler<OrderCreated>
{
public Task HandleAsync(OrderCreated @event, CancellationToken ct = default)
{
// business logic
return Task.CompletedTask;
}
}
Publish via an IEventBus implementation (e.g., Mubai.EventBus.InMemory):
await eventBus.PublishAsync(new OrderCreated(orderId), ct);
Event names
Use EventNameAttribute when you need a stable name independent of the CLR type:
[EventName("InventoryReserved")]
public record InventoryReserved(Guid OrderId) : IntegrationEvent();
Notes
- This package only contains contracts. Choose or implement an
IEventBusto send/receive events. - For in-process scenarios, use
Mubai.EventBus.InMemory. IntegrationEventhas a default constructor that sets a newIdandOccurredOntimestamp; you can still pass explicit values via the parameterized constructor.
中文
请参考仓库中的 README.zh-CN.md 获取中文说明。
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. 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 was computed. 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 was computed. 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 | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
| .NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen40 was computed. 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.0
- Microsoft.Bcl.AsyncInterfaces (>= 10.0.0)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on Mubai.EventBus:
| Package | Downloads |
|---|---|
|
Mubai.EventBus.InMemory
In-memory event bus for modular monolith .NET applications, suitable for simple event-driven communication, development, and testing. |
GitHub repositories
This package is not used by any popular GitHub repositories.