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);