We've just raised $6.1M in new funding led by a16z.
Featured image for Inngest - Add Superpowers To Serverless Functions blog post

Inngest - Add Superpowers To Serverless Functions

Dan Farrelly · 4/19/2023 · 4 min read

As developers, we all know how crucial it is to run business-critical code reliably. We all build background jobs that process data, send user notifications, communicate with third party APIs, and perform scheduled tasks.

Building in a way that is reliable, scalable, and debuggable can be a major challenge. Traditional queues don't work with serverless platforms, and properly setting up retries, dead letter queues, idempotency, and other critical features takes valuable time and experience. On top of that, writing custom logic to build the types of flows you want can be time-consuming and frustrating to test.

That's why we're thrilled to introduce the next version of Inngest, a developer platform that adds superpowers to your serverless functions. With Inngest, you can write workflows as code that run on any serverless platform and are locally testable. There is no infrastructure or configuration to set up, enabling you to go from idea to production in hours.


Inngest fixes all these challenges for every engineering team. It is a zero-upfront configuration system that handles orchestration and manages the state for your background tasks, from simple jobs to complex workflows. Inngest reliably calls your code via HTTP, which enables support for serverless and serverful by default. There are no queues or event streams to configure - you send events, and Inngest automatically executes your functions, managing function state and retries under the hood.

How Inngest works

Our platform includes all the table stakes features that every team needs like automatic retries, logging, and event history. We've also built in simple ways to handle idempotency, manage concurrency, fan-out work to other jobs, and durably sleep. For more complex workflows, Inngest enables you to schedule work in the future and wait for additional input to pause, continue or conditionally run code.

Importantly, you can do all of this in your own codebase and deploy to any platform using your current CI/CD process - without any infrastructure.

Developer experience

Instead of toiling over infrastructure, you can now focus on building powerful applications with just a few lines of code and local tooling that helps you test & build fast.

We designed our TypeScript SDK so you can easily define functions with regular TypeScript code in your existing codebase. We want the SDK to get out of your way, not be something that takes days to understand after reading docs and guides.

With just a couple of lines of code, you can:

  • Compose complex functions with many independently retried steps
  • Run work in parallel using steps or fan-out using events
  • Add sleeps in the middle of your function for minutes, hours, or days
typescript
inngest.createFunction(
{ name: "Import integration data" },
{ event: "app/integration.connected" },
async ({ event, step }) => {
// Steps are retried independently
const list = await step.run("Fetch data", async () =>
await getList(event.data.id)
)
// Sleep, delay, whatever
await step.sleep("3d")
// Run work in parallel - *reliably* w/ retries
await Promise.all(
list.map(item =>
step.run("Process item", async () => await doSomething(item))
)
)
}
)

Running in production is only half the battle, so we built a first class developer experience for local development. Our Inngest Dev Server runs Inngest right on your own machine with a web interface that allows your to easily debug and test your functions. Never has such a simple and integrated local development experience existed before for running code in the background.

The Inngest dev server in action

New today

Today, we're releasing a newly re-designed experience which gives you a beautiful and easy way to monitor your jobs in a single place. We've streamlined our web app and also added new ways to gain insight into your deployed functions.

Inngest Dashboard: Functions ListInngest Dashboard: Functions Dashboard

We're also excited to announce our new Environments with specific support for Vercel previews. Our Vercel integration automatically creates a new Inngest environment sandbox whenever Vercel deploys your branch to enable you to test your Inngest functions end-to-end before you ship to production. We'll be exploring bringing branch Environments support to other platforms through integrations or APIs in the coming weeks.

Inngest Branch Environments aligning with Vercel Preview Environments

Give it a try

We've seen a number of companies move to Inngest and unlock their team to build faster with less overhead. Companies like Ocoya have leveraged Inngest to deliver new features in record time and have made their infrastructure far simpler and easier to maintain in the process.

We think Inngest is the best platform for reliable business-critical background jobs, and we can't wait for you to try it out. Check out our quick start guide, create a free account to explore Inngest the Inngest platform or join our Discord community!

Help shape the future of Inngest

Ask questions, give feedback, and share feature requests

Join our Discord!

Ready to start building?

Ship background functions & workflows like never before

$ npx inngest-cli devGet started for free