🐂 BullMQ na PRÁTICA: construa um SISTEMA RESILIENTE com filas em ERP e SaaS
skail
0:00 / 0:00
🐂 BullMQ na PRÁTICA: construa um SISTEMA RESILIENTE com filas em ERP e SaaS
71 просмотр · 6 дн. назад
skail
94 подписчика
71 просмотр · 6 дн. назад
Neste vídeo eu mato o worker do BullMQ no meio de um lote de 3.500 cobranças de assinatura e mostro como configurar retry, backoff, lock e chave de idempotência para ninguém ser cobrado duas vezes. O foco é quem desenvolve software B2B com filas em Node e Redis e precisa que o processamento continue de onde parou quando o contêiner cai.
O cenário é um ERP SaaS que cobra todas as assinaturas no dia 1 do mês, com um gateway simulado que responde 503 em 20% das chamadas e recusa 12 cartões cancelados com erro 402. Monto tudo na minha máquina com Docker, ioredis e VS Code, reproduzo a cobrança duplicada de propósito e vou corrigindo a configuração até o lote terminar sem nenhuma duplicata. No final eu comparo com a mesma cobrança rodando em execução durável na skail, que já traz observabilidade nativa.
Na demonstração você vai ver um worker que:
✅ Processa 3.500 cobranças em lote com concorrência 10
✅ Sobrevive a um kill do contêiner e retoma o lote de onde parou
✅ Faz retry com exponential backoff quando o gateway responde 503
✅ Manda direto para falha o cartão cancelado (402), sem tentar de novo
✅ Evita enfileirar a mesma cobrança duas vezes com job ID único
✅ Usa chave de idempotência no gateway para o replay não cobrar de novo
✅ Encerra com graceful shutdown ao receber SIGTERM, sem perder job ativo
✅ Revisa os ajustes de Redis que a fila exige em produção
✅ Roda a mesma cobrança com execução durável na skail, sem fila, sem Redis e com histórico completo de cada execução
👉 Quer ver o mesmo cenário em Sidekiq, Celery, Hangfire, Oban ou outra biblioteca de fila? Escreve nos comentários que eu leio e, se muita gente pedir, eu trago em vídeo.
O exemplo usa Node e BullMQ, mas os conceitos de at-least-once, lock, idempotência e shutdown graceful valem para qualquer fila, e a skail funciona com sistemas escritos em qualquer linguagem. Se você desenvolve ERP, CRM, plataforma SaaS ou mantém um sistema legado com processamento em background, este vídeo mostra o que precisa estar configurado para a cobrança não duplicar.
⏱ Capítulos:
00:00 Introdução
00:37 Cobrança duplicada
03:50 O que é BullMQ
05:19 Estados do job
12:25 Ambiente no Docker
17:55 Matando o worker
20:06 Retry e backoff
24:53 Lock e stalled
30:34 Job ID e idempotência
33:56 Graceful shutdown
38:50 Redis em produção
40:30 Custo operacional
42:16 Execução durável
45:00 Monitor e debug
48:12 Encerramento
💬 Dúvidas/Sugestões/Críticas? Deixe seu comentário!
Links Úteis:
🔗 Conheça a skail: https://skail.dev/casos/integracoes-s...
📖 Documentação Técnica: https://docs.skail.dev/?utm_source=yo...
🔗 Execução durável na prática: • 👨💻 Abri o código: EXECUÇÃO DURÁVEL "na un...
#bullmq #nodejs #redis