What problem does it solve? Event-driven systems fail silently when events are duplicated, misnamed, or lack the context downstream consumers need. This Skill provides the conventions and patterns for designing robust Inngest events so your functions trigger reliably, deduplicate correctly, and scale across services. ## Core Features & Use Cases - Event Schema Design: Define payloads with the required name and data fields, plus optional id, ts, and v fields for deduplication, scheduling, and versioning. - Idempotency with Event IDs: Prevent duplicate processing of at-least-once deliveries (like Stripe webhooks) using unique IDs within the 24-hour dedupe window. - Fan-Out Patterns: Trigger multiple independent functions from a single event, and orchestrate results with step.sendEvent and step.waitForEvent. - System Event Handling: React to inngest/function.failed and other lifecycle events for alerting and auto-retry logic. - Use Case: A Stripe webhook fires invoice.paid. You send an Inngest event with id invoice-paid-{invoiceId} so retries never double-charge, then fan out to email, CRM sync, and analytics functions in parallel. ## Quick Start Ask the AI to design an Inngest event schema and fan-out workflow for a user signup flow with welcome email, trial creation, and CRM sync handlers.