Connections
Connections define data flow between components. They are rendered as smooth Bezier curves with optional arrowheads, labels, and waypoints.
Creating connections
Section titled “Creating connections”- Select the Connect tool (
Ckey) and click a source component, then a target - Or hold Shift and click a source, then click a target (works in any tool mode)
Direction modes
Section titled “Direction modes”Each connection has a direction that controls how requests flow during runtime:
| Direction | Behavior |
|---|---|
| Forward | Requests flow from source to target (default) |
| Backward | Requests flow from target to source |
| Both | Bidirectional traffic with dual animated paths |
| None | Visual link only, no request flow |
Change direction from the connection settings bar or by clicking a connection and editing it.
Labels
Section titled “Labels”- 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
Waypoints
Section titled “Waypoints”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
Line styles
Section titled “Line styles”Connections support three line styles, configurable from the settings bar:
- Solid - Default continuous line
- Dashed -
6 3dash pattern - Dotted -
2 4dot pattern
Latency
Section titled “Latency”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
Routing weight
Section titled “Routing weight”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