Skip to content

Connections

Connections define data flow between components. They are rendered as smooth Bezier curves with optional arrowheads, labels, and waypoints.

  1. Select the Connect tool (C key) and click a source component, then a target
  2. Or hold Shift and click a source, then click a target (works in any tool mode)

Each connection has a direction that controls how requests flow during runtime:

DirectionBehavior
ForwardRequests flow from source to target (default)
BackwardRequests flow from target to source
BothBidirectional traffic with dual animated paths
NoneVisual link only, no request flow

Change direction from the connection settings bar or by clicking a connection and editing it.

  • Add a label when editing a connection (double-click or context menu)
  • Toggle label visibility globally from the toolbar
  • When labels are toggled off, they still appear on hover

Drag the midpoint of any connection to create a bend. Waypoints let you route connections around components for cleaner layouts.

  • Drag a midpoint to add a waypoint
  • Double-click a connection to add a waypoint at the click position
  • Waypoints are saved with the connection

Connections support three line styles, configurable from the settings bar:

  • Solid - Default continuous line
  • Dashed - 6 3 dash pattern
  • Dotted - 2 4 dot pattern

Each connection can have a latency value (in milliseconds) representing transit time between components. Set it in the connection editor.

  • During simulation, requests are held in transit for the specified duration before arriving at the target
  • The narrator stats bar shows an in-transit counter (sky-blue clock icon) when requests are delayed on connections
  • Hovering a connection with latency shows a formatted duration badge (e.g. 200ms, 5m, 2h)
  • Use latency for network round-trips (5ms to 500ms), physical transport (minutes to hours), or any real-world transfer delay
  • Connections without latency (default 0) deliver requests instantly

Connections from split components can have a weight value (0-100) that controls traffic distribution:

  • Set the weight in the connection editor (labeled “Routing Weight”)
  • Higher weight means more traffic is sent along that connection
  • When any connection from a split node has a weight > 0, the runtime uses probabilistic weighted distribution instead of round-robin
  • A value of 0 (default) means equal distribution across all outputs
  • Example: Two outputs with weights 70 and 30 will receive roughly 70% and 30% of traffic respectively