Install the Inngest SDK (npm install inngest) and create a function with inngest.createFunction, specifying an id, trigger event name, and handler
In the handler, use step.run('step-name', async () => {...}) to wrap each unit of work; Inngest checkpoints and retries individual steps independently
Serve the functions by mounting the Inngest handler on your HTTP server at a path (e.g. /api/inngest) using serve() from the framework adapter
Send events to trigger functions via inngest.send({ name: 'YOUR_EVENT_NAME', data: {...} }) from your application code
Configure retries and concurrency in createFunction options; use step.waitForEvent to pause execution until a matching event arrives
Known gotchas
Inngest functions are serverless and stateless between steps; do not rely on in-memory state between step.run calls — persist state to a database or pass it as step return values
Local development requires running the Inngest Dev Server (npx inngest-cli dev) which simulates the cloud event processing locally
Function handler code may be re-executed from any step checkpoint on retry; ensure side effects inside step.run are idempotent or protected with step-level deduplication
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp