Queues
Qué es
Piensa en una cafetería: haces tu pedido en el mostrador y te alejas, mientras un barista va atendiendo los tickets de pedido uno por uno. Una (queue) es esa fila de tickets. Cloudflare Queues es una cola de mensajes gestionada para Workers, construida sobre esta misma idea. Un Worker deposita mensajes en la cola (el productor, como el cajero que toma los pedidos); otro Worker recibe lotes de esos mensajes para procesarlos (el consumidor, como el barista). Esto te permite separar el trabajo lento o poco fiable de la solicitud que lo desencadenó — aceptas la solicitud rápidamente y haces el trabajo en segundo plano.
Puntos fuertes
- Desacopla a los productores de los consumidores, suavizando los picos de tráfico.
- Agrupación en lotes automática, reintentos y una cola de mensajes fallidos (dead-letter queue, un área de espera para los mensajes que siguen fallando) para que nada se pierda en silencio.
- Integración pura con Workers — tanto el productor como el consumidor son Workers con bindings (conexiones/enlaces configurados).
- No hay infraestructura que gestionar; escala junto con tu tráfico.
- Garantiza la entrega al menos una vez (at-least-once) para que los mensajes no se pierdan en silencio.
Compensaciones
- La entrega al menos una vez implica que los consumidores deben ser idempotentes — es decir, seguros de ejecutar dos veces sobre el mismo mensaje sin causar daño (hay que manejar los duplicados).
- No es para respuestas instantáneas y síncronas — el trabajo ocurre de forma asíncrona.
- El orden es de mejor esfuerzo (best-effort), no un orden global estricto.
- El rendimiento (throughput) y el tamaño de los mensajes tienen límites en torno a los cuales hay que diseñar.
Cuándo usarlo
Usa Queues para trabajos en segundo plano: enviar correos electrónicos, procesar archivos subidos, llamar a APIs (Application Programming Interfaces — interfaces de programación de aplicaciones, los puntos de conexión que se usan para hablar con otros servicios) lentas de terceros, distribuir webhooks, o almacenar en búfer las escrituras — cualquier cosa que prefieras no hacer esperar al usuario.
Encaje con vibe coding
Queues es una forma limpia de que un añada procesamiento en segundo plano sin tener que montar un broker (intermediario de mensajes). Pídele que haga el consumidor (usando una clave de mensaje) y que configure una cola de mensajes fallidos (dead-letter queue) para que los fallos sean visibles. La configuración conecta un mismo Worker como productor y consumidor de una cola.
# wrangler.toml
[[queues.producers]]
queue = "jobs"
binding = "JOBS"
[[queues.consumers]]
queue = "jobs"
max_batch_size = 10
dead_letter_queue = "jobs-dlq"
npx wrangler queues create jobs
npx wrangler deploy