April 18, 2026featuresimulatorguards

Testing Guards and Watching Events Fire

Guard Toggles in the Simulator

When you activate the simulator, a new Guards section appears in the panel for any transitions that have guard expressions configured.

Each guard shows:

  • A shield icon (green = passes, red = blocked)
  • The transition name
  • The guard expression

Click the shield to toggle a guard on or off. When a guard is blocked, its transition becomes unavailable — the edge dims and the button disappears from the available transitions list.

This lets you test different paths through your workflow without modifying the actual guard expressions.

Symfony Event Log

Every time you fire a transition in the simulator, the engine records which Symfony events would fire in production:

  1. guard — checks if the transition is allowed
  2. leave — fires for each source place before tokens are removed
  3. transition — fires after tokens are removed from source places
  4. enter — fires for each target place before marking is updated
  5. entered — fires after marking is updated
  6. completed — fires after the full transition is done
  7. announce — fires for each newly enabled transition

In the history section, each step shows an event count badge. Hover it to see the full list of events that fired.

Why This Matters

In production Symfony applications, you often have event listeners attached to specific workflow events. Being able to see exactly which events fire for a given transition helps you:

  • Verify your listener configuration
  • Understand the event ordering
  • Debug issues where listeners fire unexpectedly
  • Test guard logic without deploying