Serverless event-driven queues, background jobs, and scheduled jobs for Typescript.
Works with any framework and platform.
Read the
documentation and get started in minutes.
![](https://img.shields.io/twitter/follow/inngest?style=social)
Build, test, and deploy code that runs in response to events or on a schedule right in your own codebase.
👋 Have a question or feature request? Join our Discord!
Getting started ·
Features ·
Contributing ·
Documentation
Getting started
Install Inngest:
npm install inngest
Writing functions: Write serverless functions and background jobs right in your own code:
import { createFunction } from "inngest";
export default createFunction(
"Send welcome email",
"app/user.created",
({ event }) => {
sendEmailTo(event.data.id, "Welcome!");
}
);
Functions listen to events which can be triggered by API calls, webhooks, integrations, or external services. When a matching event is received, the serverless function runs automatically, with built in retries.
Triggering functions by events:
import { Inngest } from "inngest";
const inngest = new Inngest({ name: "My App" });
inngest.send("app/user.created", { data: { id: 123 } });
Events trigger any number of functions automatically, in parallel, in the background. Inngest also stores a history of all events for observability, testing, and replay.
Features
- Fully serverless: Run background jobs, scheduled functions, and build event-driven systems without any servers, state, or setup
- Deploy anywhere: works with NextJS, Netlify, Vercel, Redwood, Express, Cloudflare, and Lambda
- Use your existing code: write functions within your current project, zero learning required
- A complete platform: complex functionality built in, such as event replay, canary deploys, version management and git integration
- Fully typed: Event schemas, versioning, and governance out of the box
- Observable: A full UI for managing and inspecting your functions
- Any language: Use our CLI to write functions using any language
Contributing
Clone the repository, then:
yarn
yarn dev
We use Volta to manage Node/Yarn versions.
When making a pull request, make sure to commit the changed etc/inngest.api.md
file; this is a generated types/docs file that will highlight changes to the exposed API.