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.