Saltar al contenido principal

Instalación

Prerrequisitos

  • .NET 7.0, 8.0 o 9.0
  • Microsoft.Extensions.DependencyInjection (incluido transitivamente)

Paquete Core

dotnet add package Vali-Mediator

O mediante PackageReference:

<PackageReference Include="Vali-Mediator" Version="2.0.0" />

Paquetes de Extensión

# Integración ASP.NET Core (Result → respuestas HTTP)
dotnet add package Vali-Mediator.AspNetCore

# Políticas de resiliencia (Retry, Circuit Breaker, Timeout, etc.)
dotnet add package Vali-Mediator.Resilience

# Caché en el pipeline
dotnet add package Vali-Mediator.Caching

# Observabilidad compatible con OpenTelemetry
dotnet add package Vali-Mediator.Observability

# Deduplicación de solicitudes idempotentes
dotnet add package Vali-Mediator.Idempotency

Configuración Básica

Registra Vali-Mediator en el contenedor DI:

// Program.cs
builder.Services.AddValiMediator(config =>
{
// Escanea el assembly que contiene Program en busca de handlers, procesadores, etc.
config.RegisterServicesFromAssemblyContaining<Program>();
});

Configuración Completa (Todos los Paquetes)

builder.Services.AddValiMediator(config =>
{
config.RegisterServicesFromAssemblyContaining<Program>();

// Agrega behaviors (primero registrado = más externo en el pipeline)
config.AddCachingBehavior();
config.AddObservabilityBehavior();
config.AddIdempotencyBehavior();
config.AddResilienceBehavior();
});

// Registrar stores
builder.Services.AddInMemoryCacheStore();
builder.Services.AddInMemoryIdempotencyStore();

// Observabilidad
builder.Services.AddObservability();

// Behavior de timeout (soporte IHasTimeout)
builder.Services.AddTimeoutBehavior();

// Cola de mensajes muertos para notificaciones ResilientParallel fallidas
builder.Services.AddInMemoryDeadLetterQueue();
tip

Para uso en producción, reemplaza los stores en memoria con implementaciones distribuidas (Redis, SQL Server, etc.).