inngest-events

Design Inngest event schemas, idempotency IDs, and fan-out patterns for TypeScript workflows.

Updated Feb 27, 2026
One-click install
npx skills add https://github.com/firstaxel/neon --skill inngest-events-firstaxel
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: inngest-events
Source: https://github.com/firstaxel/neon/tree/main/.agents/skills/inngest-events
Command: npx skills add https://github.com/firstaxel/neon --skill inngest-events-firstaxel

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill requires inngest.

What problem does it solve? Event-driven systems fail silently when events are duplicated, misnamed, or lack the context consumers need. This Skill provides the conventions and patterns for designing robust Inngest events so downstream functions process them exactly once and with full context. ## Core Features & Use Cases - Event Schema Design: Defines the required name and data fields plus optional id, ts, and v fields, with object-action naming conventions like billing/invoice.paid. - Idempotency and Deduplication: Shows how to set event IDs to prevent duplicate processing within Inngest's 24-hour dedupe window, critical for at-least-once sources like Stripe webhooks. - Fan-Out and System Events: Implements one-trigger-many-handlers patterns, delayed delivery via the ts parameter, and handlers for system events like inngest/function.failed. - Use Case: When a user signs up, send a single user/signup.completed event that fans out to send a welcome email, create a Stripe trial subscription, and sync the contact to a CRM, each as an independent function. ## Quick Start Ask the AI to design an Inngest event schema with an idempotency ID and fan-out handlers for a user signup flow in TypeScript.

Frequently Asked Questions about inngest-events

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

FAQPage Schema
How do I prevent duplicate Inngest events from being processed?▼

Set a unique `id` field on each event, specific to the event type and instance, such as `invoice-paid-${invoiceId}`. Inngest deduplicates events with the same ID within a 24-hour window from first reception.

How do I trigger multiple functions from one Inngest event?▼

Use the fan-out pattern: send one event like `user/signup.completed` and create multiple functions that each list it as a trigger. Each function runs independently and in parallel, so one failure does not affect the others.

What naming convention should Inngest events use?▼

Use the object-action pattern `domain/noun.verb` in past tense, such as `billing/invoice.paid` or `user/profile.updated`. Use dots for hierarchy and prefixes to group related events, avoiding underscores or vague names.

Can I schedule an Inngest event for future delivery?▼

Yes, set the `ts` parameter to a future Unix timestamp in milliseconds and Inngest will delay delivery until that time. The `ts` field also preserves chronological ordering when sending batches of events.

How do I handle failed Inngest functions?▼

Create a function triggered by the `inngest/function.failed` system event. Its payload includes `function_id`, `run_id`, and `error`, which you can use to log failures, send alerts, or schedule retries.

Does this Inngest event guidance apply to Python or Go?▼

The skill's code examples are TypeScript-focused, but core concepts like event schema, idempotency IDs, and fan-out apply across languages. Refer to the Inngest documentation for Python or Go-specific syntax.