Build reliable serverless background tasks without setting up any queues or infrastructure.
Easily move critical work from your API to a background task in just a few lines of code. Use the Inngest SDK right in your existing codebase.
Define your background jobs in your existing TypeScript or JavaScript codebase and deploy to your existing hosting platform. Inngest invokes your functions via HTTP.
Inngest calls your function as events are received. There is no need to set up a worker that polls a queue. Works with your favorite JavaScript framework or any Node.js backend.
Failures happen. Inngest retries your functions automatically. The dead letter queue is a thing of the past.
1 Create your function
2 Declare the event that triggers your function
3 Define your function steps
4 Trigger your function with an event
Sending events to Inngest automatically triggers background jobs which subscribe to that event.
1import { inngest } from "./client";
2
3// Instead of sending a welcome email or adding a user to your CRM
4// within your signup API endpoint, you can offload to the background:
5inngest.createFunction(
6 { id: "post-signup-flow" },
7 { event: "user.signup" },
8 async ({ event, step }) => {
9 await step.run("send-welcome-email", async () => {
10 await sendWelcomeEmail({ email: event.data.email });
11 });
12
13 await step.run("add-user-to-crm", async () => {
14 await addUserToHubspot({
15 id: event.data.userId,
16 email: event.data.email,
17 });
18 });
19 }
20);
21
22// Elsewhere in your code, send an event to trigger the function
23await inngest.send({
24 name: "user.signup",
25 data: {
26 userId: "6f47ebaa",
27 email: "user@example.com",
28 },
29});
“The nice thing about writing step functions for Inngest vs regular "async worker queues" is that we can express logic, e.g. "if X than wait for event Y", with a layer of caching/retries on top.”
Our open source dev server runs on your machine giving you a local sandbox environment with a UI for easy debugging.
Check the status of a given job with ease. View your complete event history and function logs anytime.
Use a single scheduled function to trigger multiple functions to fan-out logic and run work in parallel.
Create jobs that sleep or pause for hours, days or weeks to create durable workflows faster than ever before.
Create jobs that sleep or pause for hours, days or weeks to create durable workflows faster than ever before.
Define your event payload as TypeScript types to have end-to-end type safety for all your jobs.
Dive into our resources and learn how Inngest is the best solution for background tasks or jobs.
A step-by-step guide to learn how to build with Inngest in less than 5 minutes.
Read tutorialHow to background jobs without the queues and workers.
Read guideLearn how our SDK gives you typesafety from sending events to running functions.
Read docs