inngest-handler
Installation
SKILL.md
Inngest Function Handler Skill
This skill defines the standards for building durable, multi-step workflows using Inngest.
🚨 HARD RULES (Strictly Follow)
-
NO
setTimeout/setInterval:- ❌ Bad:
await new Promise(r => setTimeout(r, 1000)) - ✅ Good:
await step.sleep("wait-1s", "1s") - Reason: Serverless functions time out; Inngest sleeps persist for up to a year.
- ❌ Bad:
-
NO Side Effects Outside Steps:
- Any database write, API call, or non-deterministic logic (random, date) MUST be wrapped in
step.run(). - Reason: Inngest functions execute multiple times (memoization). Code outside steps runs every time.
- Any database write, API call, or non-deterministic logic (random, date) MUST be wrapped in
-
Deterministic Steps:
- Steps are memoized by their ID (1st arg). IDs must be unique and stable.
- Do not dynamically generate step IDs unless you know what you are doing (e.g., inside loops with index).