Definición: Tecnica que controla el numero de peticiones que un cliente puede realizar a una API en un periodo de tiempo, protegiendo los servicios contra abuso y sobrecarga.
— Fuente: NERVICO, Consultoría de Desarrollo de Producto
Que es el rate limiting
El rate limiting es un mecanismo de control que restringe la cantidad de peticiones que un cliente o usuario puede realizar a un servicio dentro de un intervalo de tiempo definido. Cuando se excede el limite, las peticiones adicionales se rechazan con un error HTTP 429 (Too Many Requests). Es una defensa esencial contra abusos, ataques de denegacion de servicio y consumo desproporcionado de recursos.
Como funciona
Los algoritmos mas comunes son el token bucket, que repone tokens a tasa constante y permite rafagas controladas, y el sliding window, que cuenta peticiones en una ventana temporal deslizante. Los limites se configuran por API key, direccion IP, usuario autenticado o combinaciones de estos. En AWS, API Gateway ofrece rate limiting nativo configurable por etapa y metodo. Para implementaciones personalizadas, Redis se utiliza frecuentemente como almacen compartido de contadores entre multiples instancias del servicio.
Casos de uso principales
- Proteccion de APIs publicas contra abuso y ataques de fuerza bruta o scraping automatizado
- Diferenciacion de niveles de servicio por plan de suscripcion (free: 100 req/min, pro: 1000 req/min)
- Prevencion de cascada de fallos cuando un cliente defectuoso inunda un servicio con peticiones
- Control de costes en servicios que consumen APIs de terceros con facturacion por llamada
Ventajas y consideraciones
El rate limiting protege la estabilidad del servicio y garantiza un uso equitativo entre todos los clientes. Es especialmente critico en APIs publicas y servicios multi-tenant. La principal consideracion es elegir limites que no perjudiquen a los usuarios legitimos. Los headers de respuesta deben comunicar los limites aplicables, las peticiones restantes y el tiempo hasta la renovacion para que los clientes puedan adaptar su comportamiento.