STEPKITis an open source SDK for building production ready durable workflows. Write code that survives failures, runs anywhere, and never loses progress.
■About StepKit
StepKit is an open source SDK built on top of the explicit step standard. This format was pioneered by Inngest as a method for building workflows with the most flexibility and least infrastructure overhead.
By using IDs for every step, functions remain stable and observable regardless of how your code evolves. StepKit was built for iteration.
This means you can:
Choose any orchestration provider or language
Deploy durable workflows anywhere
Suspend and resume long running flows
Safely refactor without breaking
Mock and test workflows before deployment
1client.workflow({ id: "ai-code-review" }, async ({ input }, step) => {
2 // AI analyzes the pull request
3 const analysis = await step.run("ai-analyze-pr", async () => {
4 return await llm.chat({
5 model: "claude-3-5-sonnet",
6 prompt: `Review PR #${input.prNumber} for security issues`
7 });
8 });
9
10 // Run security scan based on AI findings
11 if (analysis.hasConcerns) {
12 await step.run("security-scan", async () => {
13 return await snyk.scan(input.repo, analysis.files);
14 });
15 }
16
17 // Suspend and wait for human approval
18 const decision = await step.waitForSignal("await-approval", {
19 signal: "pr/review.approved",
20 timeout: "24h"
21 });
22
23 // Auto-merge if approved
24 if (decision.approved) {
25 await step.run("merge-pr", async () => {
26 await github.mergePR(input.prNumber);
27 });
28 }
29});■Why use the StepKit SDK
001
Write (and re-write) functions that maintain durability through code, language, and platform changes without impacting long running functions. Use with different architecture patterns including event-driven, queue-based, or RPC.
READ DOCS002
A simple step design eliminates infrastructure complexity, no matter how code changes. Steps create traces with the same IDs as steps, making it incredibly easy to debug, test, and mock steps without breaking or migrating long-running code.
READ DOCS003
StepKit is designed to be extensible, with pluggable drivers for different orchestration backends. Drivers enable StepKit to work on top of existing orchestration platforms and also enable developers to write their own.
READ DOCS■Run workflows on any infrastructure
Run functions on any cloud provider,
using drivers for orchestration.
[] Server
[] Serverless
[] Containers & K8S
■Build reliable workflows
StepKit allows you to effortlessly build reliable workflows without worrying about queues, state, or infrastructure. It runs on any platform, without requiring bundler or runtime support.
Build workflows using simple steps, with automatic retries, state, and observability built in.
1// Payment processing survives failures
2const payment = await step.run('charge-card', async () => {
3 const charge = await stripe.charges.create({
4 amount: 2999,
5 currency: 'usd',
6 customer: customerId
7 });
8 return charge;
9});
10
11// If workflow fails here, charge won't be retried
12await step.run('update-database', async () => {
13 await db.orders.create({
14 userId,
15 paymentId: payment.id,
16 status: 'completed'
17 });
18});■How it works
Your driver determines how to handle infrastructure and where to persist state—queues, retries, persistence. Not sure what to choose? StepKit makes it possible to switch between any supported drivers without changing workflow code.
READ DOCSEvery step gets an identifier that becomes your workflow's source of truth, so functions remain stable and observable as your code evolves. The driver you choose will use these IDs to track progress through sleeps, waits, and retries.
READ DOCSSteps create traces that survive refactors, correlate across multiple languages, and even follow workflows across platforms. Because these traces carry the same IDs as your code, it’s incredibly easy to debug, test, and mock steps before you deploy.
READ DOCSUpdate your code, test locally with mocked steps, and ship to production without breaking or migrating long-running code. Query by step name, replay, and debug easily—all because step identity is clear from the start.
READ DOCSExtend workflows with custom middleware for logging, tracing, metrics, and/or security features. Fit your existing stack, or build for new use cases.
READ DOCS■Why we built StepKit
Code is being written and re-written
faster than ever.
Other workflows weren't built to
expect this pace of change.
Choose any orchestration provider or language
Deploy durable workflows anywhere, in seconds
Suspend and resume long running workflows
For an increasingly AI-dependent world, flexibility and iteration is paramount. We built StepKit to give developers the peace of mind they need to deploy quickly, refactor fearlessly, and most importantly—change languages, or re-write entire workflows without breaking or migrating code. No language lock-in. No vendor lock-in.
One open source foundation for every engineer.