ApiFuel
Gestión y despacho de leads · 2012 — 2025
Operado entre 2012 y 2025
Ingesta leads y despacha cada uno a múltiples APIs de compradores. Lo interesante no es la tasa de peticiones: es que cada lead se multiplica en varias llamadas salientes.
- Carga entrante probada
- ~10k peticiones en ~4 minutos
- Workers salientes
- ~300 por instancia
- Flota máxima
- ~30 instancias (tope 50)
- Tipo de instancia
- AWS t4g.small
La restricción que definió todo
Un lead entra una vez y sale varias: cada uno se despacha a múltiples APIs de compradores, y cada una puede fallar, demorarse o rechazar de forma independiente. Eso hace que la capacidad sea función de la concurrencia saliente, no de cuántas peticiones entran por segundo. Optimizar el throughput de entrada habría resuelto el problema equivocado.
Tres arquitecturas, el mismo producto
PHP nativo, construido para rendimiento bajo hosting compartido (2012). Después AWS Lambda y API Gateway (2016), cambiando administración de servidores por escalado gestionado y aceptando cold starts. Después una reconstrucción de la capa de despacho en TypeScript con BullMQ y Redis Cluster (2025), porque la semántica de colas y la visibilidad que el stack anterior no daba pasaron a ser el requisito.
Escalar antes de la demanda en lugar de reaccionar
Una t4g.small nueva tarda entre uno y dos minutos en estar lista, y los picos que diseñé duran unos cuatro. Un autoscaler reactivo entregaría capacidad cuando el pico ya terminó. Por eso un controlador observa la concurrencia en vivo y provisiona workers por delante de la curva, con el umbral calibrado a partir de pruebas de carga en vez de estimado. El tope de cincuenta instancias es un guardrail de costo, no un límite técnico.
Cómo se obtuvieron los números
Campañas automatizadas enviando POSTs, con concurrencia, profundidad de cola y conexiones a base de datos leídas desde CloudWatch, Bull Board y PgBouncer. Fue una prueba de carga, no tráfico de clientes — la distinción importa y la mantengo explícita.
PHP · TypeScript · AWS Lambda · API Gateway · BullMQ · Redis Cluster · PostgreSQL · PgBouncer