inngest-events
Use when designing event-driven workflows, decoupling services, implementing fan-out patterns (one trigger, many downstream handlers), implementing idempotent event handling with IDs (24-hour dedupe window), or handling at-least-once delivery from external sources like Stripe webhooks. Covers Innges
By inngest · 3,468 installs
npx skills add inngest/inngest-skills --skill inngest-events
Source repository · Upstream listing
Inngest Events
Master Inngest event design and delivery patterns. Events are the foundation of Inngest learn to design robust event schemas, implement idempotency, leverage fan out patterns, and handle system events effectively.
These skills are focused on TypeScript. For Python or Go, refer to the [Inngest documentation](https://www.inngest.com/llms.txt) for language specific guidance. Core concepts apply across all languages.
Event Payload Format
Every Inngest event is a JSON object with required and optional properties:
Required Properties
Complete Schema
Basic Event Example
Event Naming Conventions
Use the Object Action pattern: domain/noun.verb
Recommended Patterns
Naming Guidelines
Past tense: Events describe what happened ( created , updated , failed )
Dot notation: Use dots for hierarchy ( billing/invoice.paid )
Prefixes: Group related events ( api/user.created , webhook/stripe.received )
Consistency: Establish patterns and stick to them
Event IDs and Idempotency
When to use IDs: Prevent duplicate processing when events might be sent multiple times.
Basic Deduplication
ID Best Practices
Deduplication window: 24 hours from first event reception
See inngest durable functions for idempotency configuration.
The ts Parameter for Delayed Delivery
When to use: Schedule events for future processing or maintain event ordering.
Future Scheduling
Maintaining Event Order
Fan Out Patterns
Use case: One event triggers multiple independent functions for reliability and parallel processing.
Basic Fan Out Implementation
Fan Out Benefits
Independence: Functions run separately; one failure doesn't affect others
Parallel execution: All functions run simultaneously
Selective replay: Re run only failed functions
Cross service: Trigger functions in different codebases/languages
Advanced Fan Out with waitForEvent
In expressions, event = the original triggering event, async = the new event being matched. See [Expression Syntax Reference](../references/expressions.md) for full details.
See inngest steps for additional patterns including step.invoke .
System Events
Inngest emits system events for function lifecycle monitoring:
Available System Events
Handling Failed Functions
Sending Events
Client Setup
Single Event
Batch Events
Sending from Functions
Event Design Best Practices
Schema Versioning
Rich Context Data
Event design principles:
1. Self contained: Include all data consumers need
2. Immutable: Never modify event schemas after sending
3. Traceable: Include correlation IDs and audit trails
4. Actionable: Provide enough context for business logic
5. Debuggable: Include metadata for troubleshooting