Flow Control
Flow control is a critical part of building robust applications. It allows you to manage the flow of data and events through your application which can help you manage resources, prevent overloading systems, and ensure that your application is responsive and reliable.
There are several methods to manage flow control for each Inngest function. Learn about each method and how to use them in your functions:
Concurrency
Limit the number of executing steps across your function runs. Ideal for limiting concurrent workloads by user, resource, or in general.
Throttle
Limit the throughput of function execution over a period of time. Ideal for working around third-party API rate limits.
Rate Limiting
Prevent excessive function runs over a given time period by skipping events beyond a specific limit. Ideal for protecting against abuse.
Debounce
Avoid unnecessary function invocations by de-duplicating events over a sliding time window. Ideal for preventing wasted work when a function might be triggered in quick succession.
Priority
Dynamically adjust the execution order of functions based on any data. Ideal for pushing critical work to the front of the queue.
Idempotency
Prevent duplicate work with two different approaches to ensure functions run only once.
Batch processing
Handle high load by processing events in batches. Ideal for bulk operations.