Platform

Usage Limits

We have put some limits on the service to make sure we provide you a good default to start with, while also keeping it a good experience for all other users using Inngest.

Some of these limits are customizable, so if you need more than what the current limits provide, please contact us and we can update the limits for you.

Functions

The following applies to step usage.

Sleep duration

Sleep (with step.sleep() and step.sleepUntil()) up to a year, and for free plan up to seven days. Check the pricing page for more information.

Timeout

Each step has a timeout depending on the hosting provider of your choice (see more info), but Inngest supports up to 2 hours at the maximum.

Concurrency Customizable

Our free plan has a concurrency limit of 25, and paid plans have concurrency limits of 100 (team), 500 (startup), and up to 20,000 (enterprise).

Payload Size

The limit for data returned by a step is 4MB.

Function run state size

Function run state cannot exceed 32MB. Its state includes:

  • Event data (multiple events if using batching)
  • Step-returned data
  • Function-returned data
  • Internal metadata (small - around a few bytes)

Number of Steps per Function

The maximum number of steps allowed per function is 1000.

⚠️ This limit is easily reached if you're using step on each item in a loop. Instead we recommend one or both of the following:

  • Process the loop within a step and return that data
  • Utilize the fan out feature to process each item in a separate function

Events

Name length

The maximum length allowed for an event name is 256 characters.

Request Body Size Upgradable

The maxmimum event payload size is dependent on your billing plan. The default on the Free Tier is 256KB and is upgradable to 3MB. See the pricing page for additional detail.

Number of events per request Customizable

Maximum number of events you can send in one request is 5000. If you're doing fan out, you'll need to be aware of this limitation when you run step.sendEvent(events).

// this `events` list will need to be <= 5000
const events = [{name: "<event-name>", data: {}}, ...];

await step.sendEvent("send-example-events", events);
// or
await inngest.send(events);