Durable Workflows
Write complex workflows as code and let Inngest handle the rest. Inngest manages state, retries, logging and observability for you.
Create complex workflows with simple primitives
Inngest SDKs enable you to create complex workflows in any language. We created step.run to make writing durable code easier than ever before.
Chain steps that automatically retry
Decouple logic into steps that are retried automatically and cached.
Long running, durable workflows
Trigger workflows with events and pause functions for hours or days.
Wait for additional events
Pause your workflow and resume with events for simple, decoupled systems.
export const processVideo = inngest.createFunction(
{
name: "Process video upload", id: "process-video",
},
{ event: "video.uploaded" },
async ({ event, step }) => {
// Steps that are prone to failure are automatically retried
// Successful steps are cached and never re-run if a following step fails
const transcript = await step.run('transcribe-video', async () => {
return deepgram.transcribe(event.data.videoUrl);
});
const summary = await step.run('summarize-transcript', async () => {
return llm.createCompletion({
model: "gpt-3.5-turbo",
prompt: createSummaryPrompt(transcript),
});
});
await step.run('write-to-db', async () => {
await db.videoSummaries.upsert({
videoId: event.data.videoId,
transcript,
summary,
});
});
}
)
Durable workflow engine, out-of-the-box
Avoid months of development time building a workflow engine from scratch. Build on top of Inngest's SDKs and primitives to offer endless options for customizable workflows to your users.
Run steps in series or parallel
Easily run parts of your workflow code in parallel, event on serverless. Always retried automatically on error.
Pause functions for additional input
Use step.waitForEvent() to pause your function until another event is received. Create human-in the middle workflows or communicate between long running jobs with events.
Durable sleep for hours or weeks
Pause your function and schedule to resume it after a specific period of time. Your code stops running and Inngest resumes it when the time is right.
Declarative job cancellation
Cancel jobs just by sending an event. No need to keep track of running jobs, Inngest can automatically match long running functions with cancellation events to kill jobs declaratively.
Automatic retries
Every step of your function is retried whenever it throws an error. Customize the number of retries to ensure your functions are reliably executed.
Replay workflow functions
Forget dead letter queues. Fix your issues then replay a failed function in a single click.
Visual debugging and observability
Our visual function timeline UI makes debugging easier than ever. See exactly what happened in your function, and when without grepping logs.
Use the same tools from your local-first development server to the Inngest platform.
“One of my goals was to simplify a complex workflow in a cloud world. If the abstractions exist, let's use them so engineers can focus on the business problem, not the not the infrastructure-as-code and primitives problem. The best infrastructure is the one you don't have to manage.”
Start building today
Dive into our resources and learn how Inngest is the best solution for durable workflows.
Guide: Steps & Workflows
Learn how to use steps as building blocks for creating reliable workflows that run for hours and recover from failures.
View documentationWhat are Durable Functions? A visual primer
An article with animated illustrations to cover the inner workings of Durable Functions
Read articleRunning tasks in parallel
True workflow step parallelization on servers or serverless.
View documentation