inngest
Gerencia tarefas em segundo plano e fluxos de trabalho orientados a eventos sem precisar de filas ou servidores.
O que ela faz
Inngest ajuda a criar tarefas que rodam em segundo plano, fluxos de trabalho que acontecem em etapas e processos contínuos, tudo isso sem precisar gerenciar filas ou servidores extras.
Quando usar
- ✓Quando você precisa que uma tarefa rode automaticamente em um horário específico.
- ✓Quando um evento (como um novo usuário cadastrado) precisa disparar uma série de ações.
- ✓Quando você quer que sua aplicação lide com muitas requisições ao mesmo tempo sem travar.
Exemplo do que pedir para a IA
“Crie um fluxo que envia um email de boas-vindas quando um usuário se cadastra e depois envia dicas 24 horas depois.”
Quer saber mais? Abra as seções abaixo.
Como usar
O jeito mais fácil: copie a mensagem abaixo e cole no Claude, ChatGPT, Cursor ou outra IA. Ela lê a skill e segue as instruções.
Link da skill
Mensagem pronta para colar
Como funciona
Você define os passos que sua tarefa deve seguir. Inngest garante que cada passo seja executado e seus resultados guardados. Ele também cuida de tentar novamente caso algo falhe e permite pausas reais sem travar o sistema.
Instalação
Jeito mais fácil: copie o link da skill e cole no Claude, ChatGPT ou Cursor pedindo para seguir as instruções.
No terminal (Claude Code, Codex, Cursor), na pasta do projeto:
npx skills add sickn33/agentic-awesome-skills --skill inngestOu baixe só o arquivo:
curl -L https://raw.githubusercontent.com/sickn33/agentic-awesome-skills/main/plugins/agentic-awesome-skills-claude/skills/inngest/SKILL.md -o SKILL.mdConteúdo técnico (SKILL.md)
Tradução do texto original do autor no GitHub. Os comandos e códigos estão como no original.
Integração Inngest
Especialista Inngest para jobs em segundo plano com foco em serverless, workflows orientados a eventos e execução durável sem gerenciar filas ou workers.
Princípios
- Eventos são o primitivo - tudo é acionado por eventos, não por filas
- Passos são seus pontos de controle - o resultado de cada passo é armazenado de forma durável
- Dormir não é um truque - os "sleeps" do Inngest são reais, não bloqueiam threads
- Retentativas são automáticas - mas você controla a política
- Funções são apenas handlers HTTP - implante em qualquer lugar que sirva HTTP
- Concorrência é uma preocupação de primeira classe - proteja serviços downstream
- Chaves de idempotência previnem duplicatas - use-as para operações críticas
- Fan-out é integrado - um evento pode acionar várias funções
Capacidades
- inngest-functions
- event-driven-workflows
- step-functions
- serverless-background-jobs
- durable-sleep
- fan-out-patterns
- concurrency-control
- scheduled-functions
Escopo
- redis-queues -> bullmq-specialist
- serverless-queues -> upstash-qstash
- workflow-orchestration -> temporal-craftsman
- message-streaming -> event-architect
- infrastructure -> infra-architect
Ferramentas
Core
- inngest
- inngest-cli
Frameworks
- nextjs
- express
- hono
- remix
- sveltekit
Implantação
- vercel
- cloudflare-workers
- netlify
- railway
- fly-io
Padrões
- step-functions
- event-fan-out
- scheduled-cron
- webhook-handling
Padrões
Configuração Básica de Função
Função Inngest com eventos tipados em Next.js
Quando usar: Começando com Inngest em qualquer projeto Next.js
// lib/inngest/client.ts import { Inngest } from 'inngest';
export const inngest = new Inngest({ id: 'my-app', schemas: new EventSchemas().fromRecord<Events>(), });
// Defina seus eventos com tipos type Events = { 'user/signed.up': { data: { userId: string; email: string } }; 'order/placed': { data: { orderId: string; total: number } }; };
// lib/inngest/functions.ts import { inngest } from './client';
export const sendWelcomeEmail = inngest.createFunction( { id: 'send-welcome-email' }, { event: 'user/signed.up' }, async ({ event, step }) => { // Passo 1: Obter detalhes do usuário const user = await step.run('get-user', async () => { return await db.users.findUnique({ where: { id: event.data.userId } }); });
// Passo 2: Enviar e-mail de boas-vindas
await step.run('send-email', async () => {
await resend.emails.send({
to: user.email,
subject: 'Bem-vindo!',
template: 'welcome',
});
});
// Passo 3: Esperar 24 horas, depois enviar dicas
await step.sleep('wait-for-tips', '24h');
await step.run('send-tips', async () => {
await resend.emails.send({
to: user.email,
subject: 'Dicas para Começar',
template: 'tips',
});
});
} );
// app/api/inngest/route.ts (Next.js App Router) import { serve } from 'inngest/next'; import { inngest } from '@/lib/inngest/client'; import { sendWelcomeEmail } from '@/lib/inngest/functions';
export const { GET, POST, PUT } = serve({ client: inngest, functions: [sendWelcomeEmail], });
Workflow Multi-Passo
Workflow complexo com passos paralelos e tratamento de erros
Quando usar: Processamento que envolve múltiplos serviços ou longas esperas
export const processOrder = inngest.createFunction( { id: 'process-order', retries: 3, concurrency: { limit: 10 }, // Máximo de 10 pedidos processando por vez }, { event: 'order/placed' }, async ({ event, step }) => { const { orderId } = event.data;
// Passos paralelos - ambos rodam simultaneamente
const [inventory, payment] = await Promise.all([
step.run('check-inventory', () => checkInventory(orderId)),
step.run('validate-payment', () => validatePayment(orderId)),
]);
if (!inventory.available) {
// Enviar evento em vez de chamada direta (padrão fan-out)
await step.sendEvent('notify-backorder', {
name: 'order/backordered',
data: { orderId, items: inventory.missing },
});
return { status: 'backordered' };
}
// Processar pagamento
const charge = await step.run('charge-payment', async () => {
return await stripe.charges.create({
amount: event.data.total,
customer: payment.customerId,
});
});
// Enviar pedido
await step.run('ship-order', () => fulfillment.ship(orderId));
return { status: 'completed', chargeId: charge.id };
} );
Funções Agendadas/Cron
Funções que rodam em um agendamento
…
Perguntas frequentes
O que são 'eventos'?
Eventos são como notificações de que algo aconteceu, por exemplo, 'usuário cadastrado' ou 'pedido feito'. Inngest usa esses eventos para iniciar ou continuar tarefas.
O que são 'steps' (passos)?
Steps são as partes individuais de uma tarefa maior. Inngest garante que cada step seja concluído e guarda o resultado, permitindo que você retome de onde parou se algo der errado.
Posso fazer uma tarefa esperar por um tempo?
Sim, Inngest permite que você use 'sleep' (dormir) para pausar uma tarefa por um tempo determinado (horas, dias) sem travar recursos do servidor.
Detalhes
Descrição original do autor
Inngest expert for serverless-first background jobs, event-driven workflows, and durable execution without managing queues or workers.
Popularidade
- Estrelas no GitHub
- 48 mil
- Posição no ranking
- #3337
- Licença
- MIT
- Atualizada em
- 15/10/2026
Comentários
- …
Mais skills deste repositório
00-andruia-consultant
Ajuda seu agente a iniciar ou melhorar projetos de IA. Ele analisa código, sugere ferramentas e cria planos de ação em espanhol.
sickn33/agentic-awesome-skills
007
Faz seu agente realizar auditorias de segurança e modelagem de ameaças. É útil para proteger projetos contra ataques e vulnerabilidades.
sickn33/agentic-awesome-skills
10-andruia-skill-smith
Ajuda seu agente a criar ou melhorar ferramentas de IA. Ele define como as ferramentas funcionam, escreve a documentação e valida a estrutura.
sickn33/agentic-awesome-skills
20-andruia-niche-intelligence
Faz seu agente criar um resumo sobre um setor específico. É útil para entender o contexto, regras, padrões de uso e riscos de um projeto, usando fontes confiáveis.
sickn33/agentic-awesome-skills
Skills parecidas
bun-runtime
Faz seu agente usar o Bun para rodar, organizar e testar código. Ajuda a escolher o Bun em vez de outras ferramentas e a migrar projetos existentes.
affaan-m/ECC
database-migrations
Ajuda seu agente a fazer mudanças seguras em bancos de dados. Ele garante que as alterações possam ser desfeitas e minimiza o tempo de inatividade.
affaan-m/ECC
deployment-patterns
Configura fluxos de implantação e CI/CD, containerização e estratégias de rollback para garantir lançamentos seguros.
affaan-m/ECC