Pular para o conteúdo
Skillpedia
Deploy e nuvem (DevOps)48 mil · #3337

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

https://github.com/sickn33/agentic-awesome-skills/blob/main/plugins/agentic-awesome-skills-claude/skills/inngest/SKILL.md

Mensagem pronta para colar

Use esta skill para me ajudar: https://github.com/sickn33/agentic-awesome-skills/blob/main/plugins/agentic-awesome-skills-claude/skills/inngest/SKILL.md Leia o arquivo SKILL.md desse link e siga as instruções dele na minha tarefa.
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 inngest

Ou 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.md
Conteú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.

repo: sickn33/agentic-awesome-skills

Popularidade

Estrelas no GitHub
48 mil
Posição no ranking
#3337
Licença
MIT
Atualizada em
15/10/2026

Essa skill é útil?

0

Entre para votar.

Comentários

  • …

Mais skills deste repositório

Skills parecidas