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.
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: Send events to trigger functions automatically.
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.
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.