🚀 Oferta especial: 60% OFF no CrazyStack - Últimas vagas!Garantir vaga →
🎯 Módulo 2 - Aula 2

Inngest Background Jobs

Implemente jobs em background robustos com event-driven functions, scheduling e monitoramento

50 min
Nível:Intermediário

Por que isso é importante

Jobs em background são fundamentais para SaaS escaláveis.Inngest oferece event-driven functions com retries automáticos, scheduling avançado e monitoramento em tempo real. Substitui Redis/Bull/Sidekiq com uma solução serverless robusta.

📚 Aula Educacional

Esta aula apresenta conceitos e implementações do Inngest como exemplos educacionais. Você aprenderá arquitetura, padrões e best practices sem modificar o projeto atual. Use este conhecimento para implementar jobs em seus próprios projetos SaaS.

🎯 O que São Background Jobs?

Problemas que Resolvem:

  • • Tarefas longas bloqueiam UI
  • • Emails demoram para enviar
  • • Processamento de dados pesados
  • • Integrações externas lentas
  • • Timeouts em requisições

Casos de Uso SaaS:

  • • Envio de emails transacionais
  • • Processamento de webhooks
  • • Geração de relatórios
  • • Backup de dados
  • • Notificações push

🤔 Passo 1: Por que Inngest?

🎯 Comparação com Alternativas

Inngest elimina a complexidade de Redis/Bull, oferecendo jobs serverless com interface visual, retries inteligentes e observabilidade integrada.

❌ Soluções Tradicionais

Redis + Bull/BullMQ:

  • • Infraestrutura complexa
  • • Gerenciamento de filas manual
  • • Monitoramento limitado
  • • Scaling manual
  • • Debugging difícil

Cron Jobs:

  • • Sem retries automáticos
  • • Sem observabilidade
  • • Scheduling limitado
  • • Sem event-driven
✅ Inngest Advantages

Serverless + Event-Driven:

  • • Zero infraestrutura
  • • Auto-scaling nativo
  • • Event-driven architecture
  • • Type-safe com TypeScript
  • • Dashboard visual completo

Reliability:

  • • Retries exponenciais automáticos
  • • Dead letter queues
  • • Monitoring em tempo real
  • • Debugging visual

📦 Passo 2: Setup Inngest

🔧 Configuração Inicial

Inngest funciona com qualquer framework. Para Next.js, criamos functions que são servidas via API routes e registradas no Inngest Cloud.

terminal

⚙️ Passo 3: Configuração Base

1. Cliente Inngest

src/inngest/client.ts

2. Variáveis de Ambiente

.env.local

3. API Route Handler

src/app/api/inngest/route.ts

🚀 Passo 4: Primeira Background Function

📧 Exemplo: Welcome Email

Function que envia email de boas-vindas quando usuário se registra. Demonstra event-driven architecture, type-safety e error handling.

src/inngest/functions/send-welcome-email.ts

🎯 Passo 5: Disparando Events

📡 Como Enviar Events

Events podem ser enviados de qualquer lugar: API routes, Server Actions, webhooks, ou até outras functions. Sempre use type-safe events.

1. From API Route (User Signup)

src/app/api/auth/signup/route.ts

2. From Server Action

src/app/actions/user-actions.ts

3. From Webhook Handler

src/app/api/webhooks/stripe/route.ts

🔥 Passo 6: Functions Avançadas

⏰ Scheduled Functions

Functions que executam em horários específicos, como relatórios mensais ou limpeza de dados. Cron jobs serverless com observabilidade.

src/inngest/functions/monthly-report.ts

🔄 Multi-Step Workflows

Workflows complexos com múltiplos steps, delays e condicionais. Cada step é automaticamente retried e observável.

src/inngest/functions/user-onboarding.ts

📊 Passo 7: Monitoring e Debugging

🎯 Inngest Dashboard

Dashboard visual completo para monitorar functions, debug failures, ver metrics em tempo real e gerenciar retries.

📈 Metrics Disponíveis
  • Executions: Total, success, failed
  • Duration: Avg, p95, p99
  • Throughput: Events/min, functions/min
  • Retries: Count, success rate
  • Queued: Pending jobs
  • Errors: Rate, types, frequency
🐛 Debugging Features
  • Visual Timeline: Cada step visualizado
  • Logs Estruturados: Por function/step
  • Replay Functions: Re-run com mesmo event
  • Pause/Resume: Pausar execução
  • Manual Retries: Force retry specific function
  • Event History: Todos events enviados

Logging Best Practices

src/inngest/functions/example-with-logging.ts

🔗 Passo 8: Integração com tRPC

🎯 tRPC + Inngest

Combine tRPC procedures com Inngest functions para APIs que respondem rápido mas processam de forma robusta em background.

1. tRPC Procedure que Dispara Job

src/modules/reports/server/procedures.ts

2. Inngest Function que Processa

src/inngest/functions/generate-report.ts

3. Frontend com Polling

components/ReportGenerator.tsx

✅ Inngest Mastery Completo

🎯 O que Você Dominou:

  • ✅ Event-driven architecture com Inngest
  • ✅ Background jobs robustos e confiáveis
  • ✅ Scheduled functions (cron serverless)
  • ✅ Multi-step workflows complexos
  • ✅ Retry automático e error handling
  • ✅ Monitoring e debugging visual
  • ✅ Integração seamless com tRPC
  • ✅ Type-safety completo end-to-end

🚀 Próximos Passos:

  • • Implementar em projeto real
  • • Configurar alertas e monitoring
  • • Adicionar mais event types
  • • Otimizar performance das functions
  • • Integrar com mais services externos
  • • Setup CI/CD para functions