April 24, 2026featureeditorpetri-net

Weighted Arcs: Advanced Petri Net Modeling in SymFlowBuilder

What Are Weighted Arcs?

In standard Petri nets, each transition consumes one token from each input place and produces one token in each output place. Weighted arcs change this — a transition can consume or produce multiple tokens at once.

This is useful for modeling:

  • Batch processing — a transition that requires 3 items to proceed
  • Resource pools — consuming 2 resources and producing 1 result
  • Rate limiting — transitions that consume tokens at different rates

How to Use Them

  1. Select a transition node on the canvas
  2. In the properties panel, find the Arc Weights section
  3. Set the Consume weight (tokens consumed from input places, default 1)
  4. Set the Produce weight (tokens produced in output places, default 1)

Canvas Display

When a transition has non-default weights, they display directly on the canvas label:

submit (3:2)

This means the transition consumes 3 tokens and produces 2 tokens. Default weights (1:1) are hidden to keep the canvas clean.

Export Support

Weighted arcs export to all six formats automatically:

  • YAML — uses Symfony's weight syntax
  • JSON — includes consumeWeight and produceWeight fields
  • TypeScript — typed weight properties
  • Mermaid — weight annotation in edge labels
  • DOT — weight labels on edges
  • PHP — weight properties on Transition data objects

Validation

The symflow engine validates weights automatically. Invalid weights (zero, negative, or non-integer) are caught before export.

When to Use Weights

Most workflows do not need weighted arcs. They are relevant when you are modeling a true Petri net where token counts matter — resource allocation, manufacturing processes, or concurrent systems with capacity constraints.

If you are building a standard state machine or approval workflow, the default weight of 1 is correct and you can ignore this feature entirely.