inngest-events

Designs Inngest event schemas, idempotency IDs, fan-out patterns, and system event handlers in TypeScript.

Updated Jul 28, 2026
One-click install
npx skills add https://github.com/dhanushreddy291/durable-workflow-on-neon-functions --skill inngest-events-dhanushreddy291
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: inngest-events
Source: https://github.com/dhanushreddy291/durable-workflow-on-neon-functions/tree/main/.agents/skills/inngest-events
Command: npx skills add https://github.com/dhanushreddy291/durable-workflow-on-neon-functions --skill inngest-events-dhanushreddy291

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill requires inngest.

What problem does it solve? Event-driven architectures fail silently when events are duplicated, misnamed, or lack the context downstream consumers need. This Skill provides the conventions and code patterns for designing robust Inngest events so functions trigger reliably, deduplicate correctly, and carry complete payloads. ## 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: Uses event IDs to prevent duplicate processing within Inngest's 24-hour deduplication 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 Stripe webhook fires multiple times for the same payment, send an event with id: invoice-paid-${invoiceId} so Inngest processes it exactly once, then fan out to email, CRM, and subscription functions in parallel. ## Quick Start Ask the AI to design an Inngest event schema with idempotency for a user signup flow that fans out to a welcome email and CRM sync.

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 the event, such as invoice-paid-${invoiceId}, and Inngest deduplicates events with the same id within a 24-hour window. Use IDs specific to the event type and instance rather than generic values like a customer ID.

How do I implement fan-out with Inngest events?▼

Send a single event like user/signup.completed and create multiple functions that each trigger on that same event. Each function runs independently and in parallel, so one failure does not affect the others, and failed functions can be replayed selectively.

What naming convention should I use for Inngest events?▼

Use the object-action pattern domain/noun.verb in past tense, such as billing/invoice.paid or user/profile.updated. Use dots for hierarchy, optional prefixes for grouping like stripe/customer.created, and avoid 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 delays delivery until that time. The ts field also maintains chronological ordering when sending batches of related events.

How do I handle failed Inngest functions?▼

Create a function triggered by the inngest/function.failed system event, which provides function_id, run_id, and error details in event.data. Use it to log failures, send alerts for critical functions, or schedule automatic 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. For Python or Go syntax, refer to the official Inngest documentation.