namespace adas_core.Application.Services.Interfaces
{
///
/// Contrato genérico para un proveedor de locks por clave.
/// CacheService usará una implementación local en memoria.
/// RedisService podría usar una distribuida (si fuera necesario).
///
public interface ILockProvider
{
///
/// Intenta adquirir el lock para una clave dentro del timeout.
///
Task AcquireAsync(string key, TimeSpan timeout);
///
/// Libera el lock para la clave (idempotente).
///
Task ReleaseAsync(string key);
}
}