inngest-flow-control

Configure Inngest flow control mechanisms including concurrency, throttling, debounce, and batching for TypeScript functions.

Updated Jun 22, 2026
One-click install
npx skills add https://github.com/aashahin/ai-skills --skill inngest-flow-control-aashahin
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: inngest-flow-control
Source: https://github.com/aashahin/ai-skills/tree/main/inngest-flow-control
Command: npx skills add https://github.com/aashahin/ai-skills --skill inngest-flow-control-aashahin

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Event-driven functions can overwhelm external APIs, duplicate work from rapid event bursts, and create unfair resource contention across tenants. This Skill provides prescriptive guidance for applying Inngest flow control primitives to manage load, prevent duplicates, and prioritize important runs. ## Core Features & Use Cases - Concurrency & Throttling: Limit simultaneous step execution with per-key or account-level scopes, and spread function starts over time to respect API rate limits like OpenAI or HubSpot quotas. - Debounce, Singleton & Rate Limiting: Collapse rapid event bursts into a single run, ensure only one instance runs per key, and discard excessive duplicate events. - Priority & Batching: Give VIP or critical runs queue priority based on event data, and process events in groups for bulk efficiency. - Use Case: A multi-tenant SaaS hitting OpenAI 429 errors can combine account-level concurrency limits, per-user fairness keys, and priority expressions so all customers share API quota fairly while paid plans get faster processing. ## Quick Start Ask the AI to add Inngest flow control to a function that keeps hitting OpenAI rate limits, using throttling and per-user concurrency keys.

Frequently Asked Questions about inngest-flow-control

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I handle OpenAI rate limits in Inngest functions?▼

Use throttling to limit function starts per period, or account-level concurrency with a shared key like "openai" to cap simultaneous API calls across all functions. Throttling delays excess runs while rate limiting discards them.

What is the difference between Inngest throttling and rate limiting?▼

Throttling delays function runs to spread them over a time period, while rate limiting discards events that exceed the limit. Use throttling to respect API quotas and rate limiting to skip duplicate or abusive events.

How do I debounce rapid events in Inngest?▼

Add a debounce configuration with a period and key, such as waiting 5 minutes after the last document edit before saving. Inngest processes only the latest event once activity stops, with an optional timeout to force execution.

Does Inngest concurrency limit function runs or steps?▼

Concurrency limits executing steps, not function runs. A function waiting on step.sleep() or step.waitForEvent() does not count against the concurrency limit, so limits reflect actual code execution.

Can I combine multiple Inngest flow control options?▼

Yes, you can combine throttling, concurrency, priority, and other options in one function definition. A common pattern pairs global throttling for API limits with per-user concurrency keys for tenant fairness and priority for paid plans.

Does this Inngest flow control guidance apply to Python or Go?▼

The examples are TypeScript-focused, but the core concepts apply across languages. For Python or Go syntax, refer to the official Inngest documentation for language-specific configuration details.