Discover / Automation
Inngest
by inngestGo
Durable functions and event-driven workflows without infrastructure.
Maturity: stable because 5y old, v1.40.0 released 4d ago. Derived from release and commit history, not a rating.
- Stars
- 5.7k
- Forks
- 330
- Downloads / mo
- —
- Last commit
- 2026-08-02
- License
- NOASSERTION
- Open issues
- 236
Market and trust evidence
Edition not yet matchedNo exact skills.sh identity match is available for this repository. Repository adoption and freshness remain visible above; install momentum is not inferred.
Trust analysis is a screening signal, not a security warranty. Read the ranking and trust methodology.
In practice
Written by AI from this repository’s README · high confidenceReliable background work needs queues, state storage, retries and scheduling infrastructure built and operated by hand.
Use it when
When you want step functions with retries, concurrency and flow control triggered by events, cron or webhooks.
Not the right pick when
Wrong pick unless you will run the Dev Server locally and then sync to either the Inngest Platform or a self hosted server.
Capabilities
- durable functions replacing queues, state management and scheduling
- triggers from events, cron schedules or webhook events
- flow control for concurrency, throttling, debouncing and rate limiting
- steps that are retried automatically on failure
- Dev Server dashboard for local development with production parity
- SDKs for TypeScript, Python, Go and Kotlin or Java
Cost: Open source with a paid cloud option
Video walkthroughs
How to Run AI Jobs in the Background (Claude Code + Inngest)
Next.js + Inngest: Unlocking Long-Running AI Workflow Automation
Third-party YouTube uploads matched to this tool by title, channel and repository name on 2026-08-03. Not made, reviewed or endorsed by SkillPilot. View counts and publish months are as of the match date and the month is approximate. Nothing loads from YouTube until you press play.
What the repository ships
Detected from the actual files in the repository root.
Latest release v1.40.0
Published 2026-07-30
Release Notes
- #4674 feat(mcp): generate mcp tools from rest api v2
Updates dev server mcp tools list to expose more tools that align more closely with the v2 rest api and cli
Changelog
🚀 Features
- (mcp) Generate mcp tools from rest api v2 (#4674)
- (api) Add v2 apps list endpoint (#4657)
🐛 Bug Fixes
- (epxressions) Add support for falsy terns (#4676)
- (queue) Correct reversed errors.Is arguments for ErrQueueItemNotFound (#4679)
Tags
README
Inngest
Inngest's durable functions replace queues, state management, and scheduling to enable any developer to write reliable step functions faster without touching infrastructure.
- Write durable functions using any of our language SDKs
- Run the Inngest Dev Server for a complete local development experience, with production parity.
- Deploy your functions to your own infrastructure
- Sync your application's functions with the Inngest Platform or a self-hosted Inngest server.
- Inngest invokes your functions securely via HTTPS whenever triggering events are received.
An example durable function
Inngest Functions enable developers to run reliable background logic, from background jobs to complex workflows. An Inngest Function is composed of three key parts that provide robust support for retrying, scheduling, and coordinating complex sequences of operations:
- Triggers - Events, Cron schedules or webhook events that trigger the function.
- Flow Control - Configure how the function runs are enqueued and executed including concurrency, throttling, debouncing, rate limiting, and prioritization.
- Steps - Steps are fundamental building blocks of Inngest, turning your Inngest Functions into reliable workflows that can run for months and recover from failures.
Here is an example function that limits concurrency for each unique user id and performs two steps that will be retried on error:
export default inngest.createFunction(
{
id: "import-product-images",
concurrency: {
key: "event.data.userId",
limit: 10
}
},
{ event: "shop/product.imported" },
async ({ event, step }) => {
// Here goes the business logic
// By wrapping code in steps, each will be retried automatically on failure
const s3Urls = await step.run("copy-images-to-s3", async () => {
return copyAllImagesToS3(event.data.imageURLs);
});
// You can include numerous steps in your function
await step.run("resize-images", async () => {
await resizer.bulk({ urls: s3Urls, quality: 0.9, maxWidth: 1024 });
})
};
);
// Elsewhere in your code (e.g. in your API endpoint):
await inngest.send({
name: "shop/product.imported",
data: {
userId: "01J8G44701QYGE0DH65PZM8DPM",
imageURLs: [
"https://useruploads.acme.com/q2345678/1094.jpg",
"https://useruploads.acme.com/q2345678/1095.jpg"
],
},
});
Learn more
- Getting started
- SDKs
- Project Architecture
- Self-hosting
- Community
Getting started
Run the Inngest Dev Server using our CLI:
npx inngest-cli@latest dev
Open the Inngest Dev Server dashboard at http://localhost:8288:
Screenshot of the Inngest dashboard served by the Inngest Dev Server
Follow our Next.js, Node.js or Python quick start guides.
SDKs
- TypeScript / JavaScript (inngest-js) - Reference
- Python (inngest-py) - Reference
- Go (inngestgo) - Reference
- Kotlin / Java (inngest-kt)
Project Architecture
To understand how self-hosting works, it's valuable to understand the architecture and system components at a high level. We'll take a look at a simplified architecture diagram and walk through the system.
<br />
<p align="center">
<img src=".github/assets/architecture-2024-09-23.png" alt="System Architecture" width="660" />
</p>
- Event API - Receives events from SDKs via HTTP requests. Authenticates client requests via Event Keys. The Event API publishes event payloads to an internal event stream.
- Event stream - Acts as buffer between the _Event API_ and the _Runner_.
- Runner - Consumes incoming events and performs several actions:
- Scheduling of new “function runs” (aka jobs) given the event type, creating initial run state in the _State store_ database. Runs are added to queues given the function's flow control configuration.
- Resume functions paused via
waitForEventwith matching expressions. - Cancels running functions with matching
cancelOnexpressions - Writes ingested events to a database for historical record and future replay.
- Queue - A multi-tenant aware, multi-tier queue designed for fairness and various flow control methods (concurrency, throttling, prioritization, debouncing, rate limiting) and batching.
- Executor - Responsible for executing functions, from initial execution, step execution, writing incremental function run state to the _State store_, and retries after failures.
- State store (database) - Persists data for pending and ongoing function runs. Data includes initial triggering event(s), step output and step errors.
- Database - Persists system data and history including Apps, Functions, Events, Function run results.
- API - GraphQL and REST APIs for programmatic access and management of system resources.
- Dashboard UI - The UI to manage apps, functions and view function run history.
<br />
Community
- Join our Discord community for support, to give us feedback, or chat with us.
- Post a question or idea to our GitHub discussion board
- Read the documentation
- Explore our public roadmap
- Follow us on Twitter
- Join our mailing list for release notes and project updates
Contributing
We embrace contributions in many forms, including documentation, typos, bug reports or fixes. Check out our contributing guide to get started. Each of our open source SDKs are open to contributions as well.
Additionally, Inngest's website documentation is available for contribution in the inngest/website repo.
Self-hosting
Self-hosting the Inngest server is possible and easy to get started with. Learn more about self-hosting Inngest in our docs guide.
License
The Inngest server and CLI are available under the Server Side Public License and delayed open source publication (DOSP) under Apache 2.0. View the license here.
All Inngest SDKs are all available under the Apache 2.0 license.