Hola a todos, estoy tratando con un problema de escalado más avanzado y me vendría bien algo de orientación.
Tengo múltiples workflows ejecutándose en paralelo (activados por webhooks y cron) que todos llaman a la misma API externa, que tiene límites de velocidad estrictos (por ejemplo, 100 solicitudes por minuto). A medida que crece el uso, estoy empezando a recibir errores 429, y los reintentos están empeorando las cosas al crear picos.
La configuración actual se ve así:
Webhook/Cron → Split In Batches → HTTP Request → Process
Ahora mismo:
Cada workflow maneja sus propios reintentos
No hay consciencia compartida de los límites de velocidad
Ocasionalmente, los picos exceden los límites de la API
Ejemplo de lógica de reintento:
if ($json.statusCode === 429) {
await new Promise(resolve => setTimeout(resolve, 1000));
return $input.all();
}
El problema:
Múltiples workflows reintentan al mismo tiempo → efecto de rebaño ensordecedor
Ralentizar un workflow no soluciona los otros
Necesito un control de límite de velocidad global, no por workflow
Estoy considerando:
Usar una cola (Redis / Bull)
Centralizar llamadas de API en un único workflow
Constructor de un limitador de velocidad personalizado con estado compartido
Describe el problema/error/pregunta
¿Cuál es el mejor patrón en n8n para manejar limitación de velocidad global en múltiples workflows mientras se mantiene un buen rendimiento?
¿Cuál es el mensaje de error (si hay alguno)?
Por favor, comparte tu workflow
(Selecciona los nodos en tu lienzo y usa los atajos de teclado CMD+C/CTRL+C y CMD+V/CTRL+V para copiar y pegar el workflow.)
Comparte el resultado devuelto por el último nodo
Información sobre tu configuración de n8n
- Versión de n8n:
- Base de datos (por defecto: SQLite):
- Configuración n8n EXECUTIONS_PROCESS (por defecto: own, main):
- Ejecutando n8n a través de (Docker, npm, n8n cloud, aplicación de escritorio):
- Sistema operativo: