Event Types
Ironflow organizes events into four distinct namespaces based on their purpose and behavior.
| Prefix | Name | Purpose | Triggers Workflows? |
|---|---|---|---|
system. | System Events | Engine lifecycle (runs, steps). | No |
events: | User Events | Business logic triggers. | Yes |
topic: | Topic Events | Pure messaging/broadcasting. | No |
entity: | Entity Events | Event-sourced changes. | Yes |
1. System Events (system.)
Generated automatically by the Ironflow engine. Use these to monitor performance or build real-time execution dashboards.
system.run.{id}.createdsystem.run.{id}.step.{sid}.completedsystem.function.{id}.registeredsystem.secret.{name}.updated
2. User Events (events:)
Emitted by your application via emit(). These are the primary entry points for starting functions.
events:order.placedevents:user.signup
3. Topic Events (topic:)
Emitted by your application via publish(). These are used for service-to-service communication where a durable workflow run is not required.
topic:notifications.emailtopic:analytics.page_view
4. Entity Events (entity:)
Generated when you append events to an Entity Stream. These trigger workflows just like User Events but provide an ordered historical log.
entity:{type}.{id}.{event_name}- Example:
entity:order.ord_123.item_added
Pattern Matching
When subscribing to any of these types, you can use wildcards:
*(Star): Matches exactly one segment.system.run.*.failedmatches any run failure.
>(Greater-than): Matches all remaining segments.events:>matches every user event in the system.system.run.run_123.>matches every event for a specific run.
Domain-Driven Design
Ironflow’s event types map to DDD concepts: emit() produces domain events (internal, trigger workflows), while publish() produces integration events (cross-context, no workflow trigger). See Commands, Events & Reactions for the full mapping.