inngest
- devops
- infraestructura IT
- Backend
- Data Science
- gestor de colas vs ingesta de Datos
- pipeline de datos ETL
- Lambda Functions
- CICD
- Development with Docker - Inngest Documentation
Documentación oficial
- para que se usa ingest dev server - Buscar con Google-search
- Inngest - How Inngest Works-how-inngest-works
- Local development - Inngest Documentation-local-development
- Development with Docker - Inngest Documentation-development-with-docker
Documentación relacionada
- Arquitectura basada en eventos-
- dokploy vs inngest gpt comparacion
Definición y explicación
- ¿Qué es Inngest?
- Plataforma de orquestación y ejecución de funciones basada en eventos.
- Permite definir lógica asíncrona que se ejecuta en respuesta a eventos sin gestionar infraestructura propia.
- Problema que resuelve
- Complejidad de manejar jobs en background.
- Falta de observabilidad en procesos asíncronos.
- Acoplamiento entre servicios y tareas.
- Cómo funciona a alto nivel
- La aplicación emite eventos.
- Inngest recibe y persiste esos eventos.
- Se ejecutan funciones asociadas de forma fiable y observable.
- Por qué usar Inngest
- Simplifica flujos asíncronos.
- Reduce código boilerplate de colas y workers.
- Mejora trazabilidad y control del estado.
- Cuándo es adecuado
- Procesos largos o dependientes de terceros.
- Flujos multi-paso con reintentos.
- Arquitecturas orientadas a eventos y serverless.
Conceptos clave
- Automatización sin backend propio
- Permite automatizar tareas largas o complejas sin necesidad de mantener un backend tradicional.
- Ideal para flujos basados en eventos, jobs en background y lógica asíncrona.
- Ejecución de funciones asíncronas
- Define funciones que reaccionan a eventos internos o externos.
- Maneja reintentos, fallos y timeouts de forma nativa.
- Desarrollo local
- Soporte completo para desarrollo en local con un entorno similar a producción.
- Permite probar flujos y eventos sin desplegar.
- Dev server
- Servidor de desarrollo que escucha eventos y ejecuta funciones localmente.
- Facilita el debug y la iteración rápida.
- webhooks
- Recepción de eventos externos (Stripe, GitHub, etc.).
- Normaliza eventos para integrarlos en flujos internos.
- Pruebas de código en desarrollo
- Permite disparar eventos manualmente.
- Simula escenarios reales antes de pasar a producción.
- Monitorización de eventos
- Visualiza eventos enviados y recibidos.
- Inspecciona ejecuciones, errores y reintentos.
- Gestión de jobs
- Manejo del estado de jobs (pendiente, en ejecución, fallido, completado).
- Observabilidad integrada sin herramientas externas.
- Server handler
- Punto de entrada donde Inngest se conecta con tu aplicación.
- Integra el SDK con frameworks backend o edge.
Funcionamiento general
- Modelo basado en eventos
- Los eventos son la unidad central del sistema.
- Cada evento puede disparar una o varias funciones.
- Flujo típico
- Emisión de evento desde la app o un webhook.
- Inngest recibe y encola el evento.
- Se ejecuta la función asociada.
- Se gestiona el estado y los reintentos automáticamente.
- Observabilidad integrada
- Historial de eventos.
- Logs por ejecución.
- Visibilidad completa del flujo.
Desarrollo local
- Uso del dev server
- Permite ejecutar y depurar funciones localmente.
- Escucha eventos en tiempo real.
- Ventajas
- Feedback inmediato.
- No depende de servicios externos.
- Facilita pruebas complejas.
- Integración con Docker
- Compatible con entornos dockerizados.
- Útil para stacks locales complejos.
Casos de uso comunes
- Automatización de procesos largos
- Envío de emails.
- Procesamiento de datos.
- Orquestación de flujos
- Secuencias de pasos dependientes.
- Manejo de errores y reintentos.
- Integración entre servicios
- Comunicación entre APIs mediante eventos.
- Reemplazo de cron jobs tradicionales.
- Arquitecturas serverless y event-driven
- Reduce acoplamiento.
- Escala de forma natural.
inngest
Fundamentos
- Arquitectura orientada a eventos
- Todo gira en torno a eventos como unidad principal.
- Las funciones reaccionan a eventos, no a peticiones directas.
- Desacoplamiento
- Productores de eventos y consumidores están desacoplados.
- Permite evolucionar sistemas sin romper integraciones.
- Asincronía por defecto
- Las funciones no bloquean el flujo principal de la aplicación.
- Ideal para tareas largas, costosas o dependientes de terceros.
- Fiabilidad integrada
- Reintentos automáticos.
- Manejo de errores y fallos transitorios.
- Garantías de ejecución.
- Observabilidad
- Estado visible de cada ejecución.
- Historial de eventos y funciones.
- Debug integrado sin tooling adicional.
Arquitectura general
- Componentes principales
- Event Producer
- Aplicación, servicio o webhooks externos.
- Emite eventos a Inngest.
- Event Ingest
- Capa que recibe, valida y registra eventos.
- Normaliza eventos entrantes.
- Event Queue
- Cola interna para gestionar eventos pendientes.
- Controla orden, reintentos y concurrencia.
- Function Runtime
- Ejecuta las funciones asociadas a eventos.
- Maneja timeouts, errores y estados.
- State & Metadata Store
- Guarda estado de ejecuciones y jobs.
- Permite reanudar y auditar flujos.
- Observability Layer
- UI y APIs para ver eventos, ejecuciones y errores.
- Event Producer
Flujo de ejecución
- Paso a paso
- Emisión de evento desde la aplicación.
- Inngest recibe el evento.
- El evento se persiste y se encola.
- Se evalúan las funciones suscritas.
- Se ejecuta la función correspondiente.
- Se actualiza el estado del job.
- Manejo de errores
- Reintentos configurables.
- Backoff automático.
- Registro detallado de fallos.
Modelo de funciones
- Funciones basadas en eventos
- Cada función declara qué evento escucha.
- Puede reaccionar a uno o varios eventos.
- Idempotencia
- Diseñadas para ejecutarse más de una vez sin efectos secundarios.
- Concurrencia
- Control del número de ejecuciones simultáneas.
- Evita sobrecargar servicios externos.
- Steps internos
- División de la función en pasos lógicos.
- Persistencia de estado entre pasos.
Desarrollo local y arquitectura
- Dev server
- Replica la arquitectura de producción en local.
- Permite ver eventos y ejecuciones en tiempo real.
- Server handler
- Conecta tu app con Inngest.
- Punto único de integración del SDK.
- Docker
- Arquitectura portable.
- Entornos reproducibles para desarrollo y testing.
Relación con arquitecturas modernas
- Event-driven
- Encaja con Arquitectura basada en eventos-.
- Reduce acoplamiento entre servicios.
- Serverless
- No requiere gestionar infraestructura propia.
- Escala según eventos.
- Sustitución de patrones clásicos
- Alternativa a cron jobs.
- Alternativa a colas manuales.
- Alternativa a workers dedicados.
Comparativas y contexto
- Frente a orquestadores tradicionales
- Menos complejidad operativa.
- Mayor visibilidad del flujo.
- Frente a plataformas PaaS
- Más control sobre lógica de negocio.
- Integración directa con código.
- Referencia comparativa
- dokploy vs inngest gpt comparacion
Inngest – recursos y estado a 2025
Recursos oficiales (2025)
- Documentación principal
- La documentación oficial de Inngest cubre desde introducción hasta ejemplos avanzados, incluyendo soporte para Node.js, Python y Go, manejo de flujos con pasos durables, despliegue y observabilidad.
- Inngest Docs
- Ejemplos de workflows
- Ejemplos prácticos como agentes AI y RAG con workflows que integran vectores, LLMs y pasos fiables con reintentos automáticos.
- AI Agents & RAG examples
- Blog oficial
- Actualizaciones periódicas sobre producto, funciones nuevas, casos de uso y tutoriales prácticos publicados a lo largo de 2025.
- Inngest Blog
- Ejemplos de posts recientes:
- Cómo implementar telemetría con OpenTelemetry en Node.js (dic 2025)
- Nuevas capacidades de trazas extendidas en la plataforma (dic 2025)
- Integración de AI Agents y Context Engineering (nov 2025)
- Changelog de producto
- Cambios y nuevas capacidades en 2025 como:
- Soporte realtime para Python (beta).
- Soporte Zod 4 en SDK TypeScript.
- Hooks
useAgentyuseChatpara streaming con AgentKit. - SQL querying de eventos desde el dashboard (Inngest Insights).
- Inngest Changelog
- Cambios y nuevas capacidades en 2025 como:
Recursos comunitarios y cursos
- Cursos y tutoriales de terceros
- Curso práctico Full Stack AI Agent con Inngest y Gemini (≈3h), con paso a paso de jobs, pipelines y front/backend.
- Full Stack AI Agent Course (ClassCentral)
Ejemplos y código para aprender (2025)
- AI Agents y RAG
- Ejemplo de función que resume contenido con GPT-4 usando pasos Inngest garantizados con reintentos.
- Boilerplates y proyectos de ejemplo con Next.js, OpenAI y Xata/Prisma.
- Demostraciones del blog
- Proyectos como “Dinner Generator” que integran Inngest con bases de datos y OpenAI para flujos dinámicos.
- Ejemplos del blog
Herramientas y ecosistema (2025)
- AgentKit
- Kit de herramientas para crear agentes AI con Inngest, con soporte para múltiples modelos y parámetros avanzados.
- AgentKit
- MCP Docs Servers
- Servidores MCP que ofrecen acceso a documentación Inngest en Markdown para integraciones con agentes o IDEs.
- Inngest Docs MCP Server
Estado del proyecto en 2025
- Actividades y lanzamientos
- Inngest mantiene publicaciones frecuentes en su blog con tutoriales, casos de uso y mejoras de producto.
- Actividad del proyecto
- Nuevas funcionalidades
- Realtime updates y trazabilidad avanzada.
- SQL-based event queries directamente en la plataforma.
- Mejoras continuas en SDKs y hooks para frontend y backend.
- Changelog 2025
- Adopción y comunidad
- Crecimiento constante de contenido educativo y recursos comunitarios.
- Mayor adopción en flujos event-driven y AI workflows.
Enlaces útiles (2025)
Consejos para 2025
- Prioriza la documentación oficial para APIs y patrones actualizados.
- Usa el blog para descubrir casos reales y nuevas features.
- Complementa con cursos externos para flujos full stack y AI avanzados.
inngest
Ejemplo básico: emitir un evento
import { inngest } from "@/inngest/client";
await inngest.send({
name: "user.created",
data: {
userId: "123",
email: "user@email.com"
}
});
`
Ejemplo básico: función que escucha un evento
import { inngest } from "@/inngest/client";
export const onUserCreated = inngest.createFunction(
{ id: "on-user-created" },
{ event: "user.created" },
async ({ event, step }) => {
await step.run("log-user", async () => {
console.log("Nuevo usuario:", event.data.userId);
});
}
);
Ejemplo con steps (flujo multi-paso)
export const onboardingFlow = inngest.createFunction(
{ id: "user-onboarding" },
{ event: "user.created" },
async ({ event, step }) => {
const user = await step.run("fetch-user", async () => {
return getUserFromDB(event.data.userId);
});
await step.run("send-welcome-email", async () => {
sendEmail(user.email);
});
await step.run("track-metric", async () => {
track("user_onboarded", { id: user.id });
});
}
);
Ejemplo con reintentos y control de errores
export const retryableTask = inngest.createFunction(
{
id: "retry-example",
retries: 3
},
{ event: "payment.process" },
async ({ event, step }) => {
await step.run("process-payment", async () => {
processPayment(event.data.paymentId);
});
}
);
Ejemplo con delay (esperas programadas)
export const delayedEmail = inngest.createFunction(
{ id: "delayed-email" },
{ event: "trial.started" },
async ({ event, step }) => {
await step.sleep("wait-7-days", "7d");
await step.run("send-reminder", async () => {
sendReminderEmail(event.data.email);
});
}
);
Ejemplo tipo cron (eventos programados)
export const dailyJob = inngest.createFunction(
{ id: "daily-report" },
{ cron: "0 9 * * *" },
async ({ step }) => {
await step.run("generate-report", async () => {
generateDailyReport();
});
}
);
Ejemplo con control de concurrencia
export const limitedConcurrency = inngest.createFunction(
{
id: "limited-concurrency",
concurrency: {
limit: 5
}
},
{ event: "bulk.email.send" },
async ({ event, step }) => {
await step.run("send-email", async () => {
sendEmail(event.data.email);
});
}
);
Ejemplo de integración con webhooks
export async function POST(req: Request) {
const body = await req.json();
await inngest.send({
name: "stripe.payment_succeeded",
data: body
});
return new Response("ok");
}
Ejemplo de server handler (Next.js)
import { serve } from "inngest/next";
import { inngest } from "@/inngest/client";
import { onUserCreated, onboardingFlow } from "@/inngest/functions";
export const { GET, POST, PUT } = serve({
client: inngest,
functions: [
onUserCreated,
onboardingFlow
]
});
Casos prácticos cubiertos
- Emisión de eventos
- Funciones reactivas
- Flujos multi-paso con
step - Reintentos automáticos
- Delays y tareas diferidas
- Jobs tipo cron
- Control de concurrencia
- Integración con webhooks
- Server handler y registro de funciones
Inngest – alternativas y comparativas
Alternativas principales
- Temporal
- Plataforma de workflows y orquestación de tareas.
- Permite definir flujos complejos con retries, timers y actividades externas.
- Compatible con Go, Java, Node.js y Python.
- Más orientada a arquitecturas de microservicios complejas.
- Temporal.io
- Airplane
- Plataforma low-code para automatizar procesos y ejecutar jobs.
- Permite exponer scripts y tareas como endpoints.
- Fácil integración con bases de datos y APIs.
- Orientado a equipos internos y operaciones.
- Airplane
- Zapier / Make (Integromat)
- Prefect
- Orquestación de flujos de datos y pipelines.
- Orientado a data engineering y ETL.
- Soporta retries, triggers condicionales y visualización de flujos.
- Prefect.io
- AWS Step Functions
- Orquestación serverless de workflows en AWS.
- Integración nativa con servicios AWS.
- Adecuado para arquitecturas completamente en AWS.
- AWS Step Functions
- Argo Workflows
- Orquestación de pipelines Kubernetes.
- Diseñado para entornos cloud-native.
- Permite flujos paralelos, condicionales y retries.
- Argo Workflows
Comparativa rápida
| Plataforma | Nivel de código | Orquestación avanzada | Integración cloud | Observabilidad | Casos ideales | |————|—————-|——————–|—————–|—————|—————| | Inngest | Código | Media | Multi-cloud | Sí | Event-driven, serverless, AI workflows | | Temporal | Código | Alta | Multi-cloud | Sí | Microservicios, flujos complejos, retries | | Airplane | Bajo | Media | Multi-cloud | Básica | Internal ops, scripts, dashboards | | Zapier / Make | Sin código | Baja | SaaS apps | Básica | Integraciones rápidas, no críticas | | Prefect | Código | Alta | Multi-cloud | Sí | Data pipelines, ETL, analytics | | AWS Step Functions | Código/JSON | Alta | AWS | Sí | Workflows serverless nativos AWS | | Argo Workflows | Código (K8s) | Alta | Kubernetes | Sí | Cloud-native pipelines, batch jobs |
Consideraciones al elegir
- Nivel de control requerido sobre los flujos y jobs.
- Ecosistema y herramientas que ya se usan.
- Complejidad de los procesos y necesidad de retries.
- Facilidad de desarrollo local y pruebas.
- Observabilidad y trazabilidad de ejecuciones.
- Costos y escalabilidad del servicio.
- Requisitos de integración con AI o procesamiento de datos.
¿Te gusta este contenido? Suscríbete vía RSS