Saltar al contenido principal

Caché

Vali-Mediator.Caching agrega caché declarativa en el pipeline a cualquier IRequest<T> sin modificar el código del handler.

Instalación

dotnet add package Vali-Mediator.Caching

Configuración

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

builder.Services.AddInMemoryCacheStore();

Cómo Funciona

loading...

Ejemplo Rápido

public record GetProductQuery(Guid Id)
: IRequest<Result<ProductDto>>, ICacheable
{
public string CacheKey => $"product:{Id}";
public TimeSpan? AbsoluteExpiration => TimeSpan.FromMinutes(10);
public TimeSpan? SlidingExpiration => null;
public string? CacheGroup => "products";
public bool BypassCache => false;
public CacheOrder Order => CacheOrder.CheckThenStore;
}

El handler no necesita cambios — la caché se aplica transparentemente por el pipeline behavior.

Conceptos Clave

ConceptoDescripción
ICacheableMarca una solicitud como cacheable; provee clave de caché y expiración
IInvalidatesCacheMarca una solicitud que invalida entradas cacheadas
ICacheStoreAbstracción del backend de caché (en memoria, Redis, etc.)
CacheOrderControla check-then-store vs store-only vs check-only
CacheGroupAgrupa entradas de caché relacionadas para invalidación masiva