Diseña un rate limiter para una API.
Respuesta
- Dónde: API gateway o middleware; clave por ID de usuario, API key o IP.
- Algoritmos: token bucket (permite ráfagas), leaky bucket (suave), ventana fija (simple, con picos en los bordes), sliding window (preciso).
- Contadores compartidos en Redis con operaciones atómicas (INCR + EXPIRE, o un script Lua).
- Respuesta: 429 +
Retry-After y headers de cuota restante. - Si Redis cae: ¿fail open (permitir) o fail closed (bloquear)? Decide por endpoint.
- Varios niveles (por segundo y por día), límites por endpoint, una comprobación previa local en memoria para reducir la carga de Redis.
Practica esta pregunta en Repaso