Cosmos.EventDriven.CritterStack
0.3.1
See the version list below for details.
dotnet add package Cosmos.EventDriven.CritterStack --version 0.3.1
NuGet\Install-Package Cosmos.EventDriven.CritterStack -Version 0.3.1
<PackageReference Include="Cosmos.EventDriven.CritterStack" Version="0.3.1" />
<PackageVersion Include="Cosmos.EventDriven.CritterStack" Version="0.3.1" />
<PackageReference Include="Cosmos.EventDriven.CritterStack" />
paket add Cosmos.EventDriven.CritterStack --version 0.3.1
#r "nuget: Cosmos.EventDriven.CritterStack, 0.3.1"
#:package Cosmos.EventDriven.CritterStack@0.3.1
#addin nuget:?package=Cosmos.EventDriven.CritterStack&version=0.3.1
#tool nuget:?package=Cosmos.EventDriven.CritterStack&version=0.3.1
Cosmos.EventDriven.CritterStack
Implementaciones de Wolverine para IPublicEventSender e IPrivateEventSender en Cosmos EDA con .NET 10.
Descripción
Este paquete provee las implementaciones concretas de los senders de eventos usando Wolverine como bus de mensajería. Separa explícitamente el envío de eventos públicos (inter-servicio) de los eventos privados (intra-servicio, dentro del mismo bounded context).
Características
- WolverinePublicEventSender: Implementación de
IPublicEventSenderque publicaIPublicEventa través del bus Wolverine hacia brokers externos (RabbitMQ, Azure Service Bus) - WolverinePrivateEventSender: Implementación de
IPrivateEventSenderque despachaIPrivateEventde forma local dentro del mismo proceso - AgregarWolverineEventSender: Método de extensión para registrar ambos senders en el contenedor de dependencias
Propagación de identidad
Ambos senders resuelven el tenant y el usuario actuales vía ITenantResolver y los adjuntan a cada evento:
- El TenantId se envía en
DeliveryOptions.TenantId; Wolverine lo propaga de forma nativa alIMessageContextdel handler receptor. - El UserId no tiene propagación nativa, por lo que se adjunta como el header
user_iddel envelope. Del otro lado,WolverineMessageContextTenantResolver(deCosmos.MultiTenancy.CritterStack) lo lee de ese header.
Como el sender re-lee el UserId del resolver en cada publicación, la identidad se re-propaga automáticamente a lo largo de cadenas de handlers anidados. Si el ITenantResolver no puede resolver el UserId, la publicación lanza InvalidOperationException.
Instalación
dotnet add package Cosmos.EventDriven.CritterStack
Uso
Registrar los senders en DI
builder.Services.AgregarWolverineEventSender();
Enviar un evento público
using Cosmos.EventDriven.Abstractions;
public record PedidoCreado(Guid PedidoId, string ClienteId) : IPublicEvent;
public class MiServicio(IPublicEventSender sender)
{
public async Task CrearPedido(...)
{
// ... lógica de negocio
await sender.PublishAsync(new PedidoCreado(pedidoId, clienteId));
}
}
Enviar un evento privado
using Cosmos.EventDriven.Abstractions;
public record StockActualizado(Guid ProductoId, int Cantidad) : IPrivateEvent;
public class InventarioServicio(IPrivateEventSender sender)
{
public async Task ActualizarStock(...)
{
// ... lógica de negocio
await sender.PublishAsync(new StockActualizado(productoId, cantidad));
}
}
Requisitos
- .NET 10.0 o superior
- Wolverine configurado en el host (
UseWolverine)
Licencia
Copyright © Cosmos. Todos los derechos reservados.
| 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
- Cosmos.EventDriven.Abstractions (>= 0.0.8)
- Cosmos.MultiTenancy (>= 0.3.0)
- WolverineFx (>= 6.1.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 1.0.0 | 0 | 6/2/2026 |
| 0.3.1 | 33 | 6/2/2026 |
| 0.3.0 | 116 | 5/28/2026 |
| 0.2.2 | 74 | 5/28/2026 |
| 0.2.1 | 73 | 5/28/2026 |
| 0.2.0 | 65 | 5/28/2026 |
| 0.1.0 | 184 | 5/26/2026 |
| 0.0.7 | 276 | 5/20/2026 |
| 0.0.6 | 98 | 5/6/2026 |
| 0.0.5 | 831 | 3/18/2026 |
| 0.0.4 | 320 | 3/17/2026 |
| 0.0.3 | 187 | 3/12/2026 |
| 0.0.2 | 104 | 3/12/2026 |
| 0.0.1 | 111 | 3/12/2026 |
| 0.0.1-RC.3 | 72 | 3/11/2026 |
| 0.0.1-RC.2 | 64 | 3/11/2026 |
| 0.0.1-RC.1 | 48 | 3/11/2026 |