Repaso
English
Diseño de sistemasAvanzadoSD-24

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.

Términos clave

Practica esta pregunta en Repaso