Checkpointing
Checkpointing is currently in developer preview. Learn more about the developer preview limitations.
Checkpointing is a performance optimization for Inngest functions that executes steps eagerly rather than waiting on internal orchestration. The result is dramatically lower latency — ideal for real-time AI workflows.
Minimum Requirements
Language
- TypeScript: SDK
3.46.0or higher. - Go: SDK version
v0.15.0.
Getting Started
To enable checkpointing:
- Install
inngest@3.46.0or higher - Set
checkpointing: trueon your Inngest client or on individual functions
For all functions:
import { Inngest } from "inngest";
export const inngest = new Inngest({
id: "my-app",
checkpointing: true,
});
Per-function:
export const myFunction = inngest.createFunction(
{
id: "my-function",
checkpointing: true,
},
{ event: "app/my.event" },
async ({ step }) => {
// steps here will be checkpointed
}
);
How Does It Work?
The Inngest default execution model is a complete handoff to the Inngest Platform, where an HTTP request is performed to store the execution state upon each step completion, leading to inter-step latency.
![]()
Checkpointing uses the SDK orchestrates steps on the client-side (on your server) and executes them immediately. As steps complete, checkpoint messages are sent to Inngest to track progress. The result is dramatically lower latency — ideal for real-time AI workflows.
![]()
Failures and Retries
What happens when something goes wrong? If a step fails and needs to retry, the execution engine falls back to standard orchestration to handle it properly. You get speed when things work, and safety when they don't.
Developer Preview
Checkpointing is currently in developer preview. This means the API is subject to change as we iterate based on feedback. Read the release phases for more details.
| Feature | Supported |
|---|---|
| Local development | ✅ |
| Self-hosted Inngest | ✅ |
| Inngest Cloud | ✅ |
Limitations
During the developer preview, there are some limitations to be aware of:
- Parallel step execution — When a function branches into parallel steps, execution switches to standard orchestration for the remainder of the run. Checkpointing does not resume after parallel execution.
- Limited configuration options — Customization of checkpointing buffer size and buffer timeout is not yet available.