SAService Architect Back to designer
SAService ArchitectDocumentation
Stream type N × KV<K,T> → R

MultiJoin

Correlates three or more keyed streams into one result.

When to use

Use MultiJoin when correlation spans a variable number of keyed inputs.

Behavior

  • The first source is primary; rightSources contains all additional inputs.
  • State is indexed by the shared key.

General properties

Identity, ownership and operator-specific mode.

PropertyTypeDescription
typeTransformationType

Operator kind. It controls available properties, valid sources and generated interfaces.

RequiredAllowed: Input, Map, Filter, Join, MultiJoin, Process, FlatMap, FlatMapIterable, KeyBy, Merge, Split, Case, Sink, CycleLink, Error, Delay, When
namestring

Human-readable stream name shown in the designer and used to derive default generated symbols.

Required
joinStorageHashMap | RocksDB | Aerospike

State backend used for pending keyed values.

Default: HashMapAllowed: HashMap, RocksDB, Aerospike
serviceService

Service that owns the stream. Connected streams must belong to the same service.

Required

Connections properties

Upstream graph references accepted by this operator.

PropertyTypeDescription
leftSourceKeyed stream

Primary keyed input of Join or MultiJoin.

Required
rightSourcesKeyed stream[]

One or more additional keyed inputs of MultiJoin. All key types must match.

Required

Data Types properties

Message contracts visible at this node.

PropertyTypeDescription
valueTypeType

Output or response message contract. The exact meaning is operator-specific.

RequiredDefault: UnknownType

Function properties

Generated business-logic implementation and its placement.

PropertyTypeDescription
functionNamesymbol

Generated business-logic type or function name.

Required
functionPackagestring

Subdirectory under the generated functions package.

publicFunctionboolean

Places the generated function in a shared package instead of the service-internal package.

Default: false
functionDescriptiontext

Documentation comment emitted with the generated function.

functionInitializerGroupstring

Dependency-injection initialization group for the generated function.

functionModuleModule

Shared module that owns the function.

Visible when publicFunction is true.

Execution properties

Pipeline placement and runtime policy.

PropertyTypeDescription
pipelinestring

Visual and configuration grouping inside the owning service.

ttlmilliseconds

Lifetime of unmatched join state. Zero uses the runtime default/no expiry behavior.

Default: 0Minimum: 0
renewTTLboolean

Resets TTL whenever another value for the same key arrives.

Default: false

Position properties

Designer-only canvas coordinates.

PropertyTypeDescription
xPosnumber

Horizontal designer coordinate. It has no runtime effect.

Required
yPosnumber

Vertical designer coordinate. It has no runtime effect.

Required

Configuration example

type: MultiJoin
leftSource: orderById
rightSources: [paymentByOrder, stockByOrder]
joinStorage: HashMap
valueType: ReadyOrder