SAService Architect Back to designer
SAService ArchitectDocumentation
Python API reference join | multi_join | merge | split | case | cycle_link | error | when

Join, Merge, Split, Case, and control streams

Multi-input, branching, cycle, condition, and error-flow operators.

When to use

Use these methods where graph shape, state retention, or control flow is the primary behavior.

Behavior

  • Join and MultiJoin combine keyed flows with state/storage options.
  • Merge combines sources without a user callback.
  • Split creates one branch point; Case and When represent conditional paths.
  • CycleLink closes an intentional graph cycle; Error receives failure flow.

Join methods properties

Stateful combination.

PropertyTypeDescription
join(..., function, join_type=None, join_storage=None)Stream

Two-sided join with optional Inner, Left, Right, or Outer behavior.

multi_join(..., function, join_storage=None)Stream

Combine more than two keyed inputs.

ttl / renew_ttlint | bool | None

Retention duration and renewal behavior.

Routing methods properties

Graph branching and recombination.

PropertyTypeDescription
merge(name, *, sources=(), x=0, y=0)Stream

Combine multiple sources.

split(name, *, source=None, x=0, y=0)Stream

Create a branch point.

case(name, *, function, source=None, x=0, y=0)Stream

Select a callback-defined branch.

when(name, *, value_type=None, source=None, x=0, y=0)Stream

Conditional branch target.

Control methods properties

Cycles and failures.

PropertyTypeDescription
cycle_link(name, *, source=None, x=0, y=0)Stream

Explicit cycle connector.

error(name, *, value_type=None, function=None, source=None)Stream

Failure stream with optional callback.

Python example

merged = orders.merge("Merge Results")
merged << http_result << kafka_result << processing_error

split = orders.split("Split Result")
merged >> split
split >> success
split >> retry