Processamento Assíncrono no Serverless: Cloudflare Queues e Dead Letter Queues
No desenvolvimento de aplicações web modernas, nada degrada mais a experiência do usuário do que telas travadas esperando operações demoradas.
Seja aguardando uma resposta de 15 segundos de um modelo de linguagem (LLM como Claude ou GPT-4), gerando um relatório em PDF ou disparando centenas de e-mails transacionais, processar tarefas pesadas de forma síncrona dentro da requisição HTTP é uma receita garantida para timeouts e falhas de conexão.
No Nuxfire, todo o processamento em segundo plano é gerenciado de forma resiliente por Cloudflare Queues e Dead Letter Queues (DLQ).
A Arquitetura Produtor-Consumidor Serverless
Em arquiteturas tradicionais, configurar filas exigia hospedar instâncias RabbitMQ ou gerenciar filas Redis BullMQ com workers Node.js monitorados por PM2.
Com a Cloudflare Queues, a infraestrutura é 100% serverless:
- Produtor: O dashboard ou API enfileira mensagens em milissegundos e devolve uma resposta imediata (
202 Accepted) para o usuário. - Fila (Queue): A Cloudflare armazena as mensagens com garantia de entrega e controle de concorrência.
- Consumidor (Worker): Um worker dedicado processa os lotes de mensagens em segundo plano com retry automático.
// Enfileirando um job assíncrono a partir de uma API Nuxt 4
export default defineEventHandler(async (event) => {
const body = await readBody(event);
// Publica na fila da Cloudflare em menos de 10ms
await env.APP_QUEUE.send({
type: "PROCESS_AI_COMPLETION",
payload: {
documentId: body.documentId,
prompt: body.prompt
},
enqueuedAt: Date.now()
});
return { success: true, message: "Processamento iniciado em segundo plano." };
});
Resiliência com Backoff Exponencial e Dead Letter Queue (DLQ)
E se uma API externa de IA ou um provedor de e-mail estiver temporariamente fora do ar?
No Nuxfire, as filas são configuradas no SST com política estrita de tolerância a falhas:
- Tentativas automáticas: O consumidor tenta reprocessar a mensagem até 3 vezes com intervalos graduais (Backoff Exponencial).
- Dead Letter Queue (DLQ): Caso a falha persista após as tentativas máximas, a mensagem não é perdida! Ela é enviada automaticamente para uma fila de quarentena (DLQ).
- Inspeção e Alerta: A equipe de suporte pode inspecionar mensagens na DLQ, corrigir o problema de integração e reenfileirar as mensagens com segurança.
// infra/queue.ts usando SST v4
export const appQueue = new sst.cloudflare.Queue("AppQueue", {
dlq: new sst.cloudflare.Queue("AppQueueDLQ")
});
Tarefas Periódicas com o CRON Worker
Além de filas orientadas a eventos, muitos SaaS precisam de rotinas agendadas:
- Verificar faturas vencidas no Stripe.
- Limpar tokens de convite expirados.
- Consolidar métricas de uso diário de tokens de IA.
O Nuxfire inclui um CRON Worker nativo configurado em apps/functions, disparado a cada hora sem depender de serviços externos como Cronhook ou instâncias de cron no Linux.
Construa sistemas distribuídos profissionais sem surpresas operacionais.
Acesse o monorepo do Nuxfire agora mesmo com entrega imediata e suporte no Grupo VIP →