Skip to content

Event Types

Ironflow organizes events into four distinct namespaces based on their purpose and behavior.

PrefixNamePurposeTriggers Workflows?
system.System EventsEngine lifecycle (runs, steps).No
events:User EventsBusiness logic triggers.Yes
topic:Topic EventsPure messaging/broadcasting.No
entity:Entity EventsEvent-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}.created
  • system.run.{id}.step.{sid}.completed
  • system.function.{id}.registered
  • system.secret.{name}.updated

2. User Events (events:)

Emitted by your application via emit(). These are the primary entry points for starting functions.

  • events:order.placed
  • events: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.email
  • topic: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.*.failed matches 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.