API públicas
Cada clave de API recibe un límite por plan, con ráfagas para los clientes que se portan bien y un Retry-After preciso para el resto.
Límites de tasa atómicos en el servidor. GCRA en un comando, o limitadores con nombre con ventana deslizante, token bucket o leaky bucket. Sin Lua.
10 solicitudes por minuto para el usuario 42. La respuesta indica que está permitida, el límite y cuántas quedan.
Un recorrido animado con comandos reales de HotKV y respuestas de ejemplo. Haz clic en cualquier paso para saltar a él. Los comandos y las respuestas se quedan en inglés, tal como los escribes y los ves en HotKV.
A una API sin límites le basta un cliente que se porte mal para caerse. Hacer la comprobación en el código de la aplicación implica una lectura, un cálculo y una escritura, y las solicitudes concurrentes se cuelan por los huecos entre ellos. Muchos equipos acaban manteniendo un script de Lua solo para hacerlo atómico.
GCRA.LIMIT decide y registra en un solo paso, así que dos clientes concurrentes no pueden pasar con el mismo estado, y el límite se recarga de forma suave en lugar de reiniciarse en los bordes de la ventana. Para los límites que gestionas por nombre, RATELIMIT.CREATE configura un limitador de ventana deslizante, token bucket o leaky bucket con estadísticas de lo que permitió y denegó.
10 solicitudes por minuto para el usuario 42. La respuesta indica que está permitida, el límite y cuántas quedan.
GCRA.LIMIT ratelimit:user:42 60000 10El scraper agota su margen de ráfaga y luego se le dice cuánto debe esperar. Una solicitud denegada no cambia nada.
GCRA.LIMIT ratelimit:bot:7 60000 10Los clientes del plan gratuito tienen 100 solicitudes por minuto en una ventana deslizante.
RATELIMIT.CREATE free_plan 100 60000 ALGO sliding_windowUn endpoint de exportación cuesta 20 unidades, así que consume más del margen.
RATELIMIT.CHECK free_plan customer:881 COST 20Configuración, claves seguidas y los totales de solicitudes permitidas y denegadas.
RATELIMIT.STATS free_planCada clave de API recibe un límite por plan, con ráfagas para los clientes que se portan bien y un Retry-After preciso para el resto.
Los intentos por IP y por cuenta se limitan para frenar el credential stuffing.
Las llamadas a la API de un socio o a un proveedor de LLM se mantienen por debajo de su cuota en todos los workers de la flota.
Recarga suave con ráfagas, comprobación y actualización atómicas y un tiempo de reintento al denegar.
GCRA.LIMITGCRA.RESETVentana deslizante, token bucket o leaky bucket, creados una vez y comprobados por clave.
RATELIMIT.CREATERATELIMIT.CHECKLas llamadas caras pueden contar como varias solicitudes. GCRA.LIMIT acepta un recuento, RATELIMIT.CHECK un COST.
COSTTotales de permitidas y denegadas por limitador.
RATELIMIT.STATSNo. Tanto GCRA.LIMIT como RATELIMIT.CHECK hacen toda la comprobación como un único comando atómico.
GCRA.LIMIT no necesita configuración y funciona en todos los planes. Los limitadores con nombre RATELIMIT.* añaden la elección de algoritmo y estadísticas, y forman parte de los planes Performance y Scale.
Nada. Una llamada GCRA denegada deja el limitador sin cambios, así que un cliente que reintenta no sale más penalizado.
HotKV habla el protocolo de Redis, así que puedes apuntar un cliente que ya usas hacia él y ejecutar estos mismos comandos.