N × KV<K,T> → RMultiJoin
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.
typeTransformationTypeOperator 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, WhennamestringHuman-readable stream name shown in the designer and used to derive default generated symbols.
RequiredjoinStorageHashMap | RocksDB | AerospikeState backend used for pending keyed values.
Default:HashMapAllowed: HashMap, RocksDB, AerospikeserviceServiceService that owns the stream. Connected streams must belong to the same service.
RequiredConnections properties
Upstream graph references accepted by this operator.
leftSourceKeyed streamPrimary keyed input of Join or MultiJoin.
RequiredrightSourcesKeyed stream[]One or more additional keyed inputs of MultiJoin. All key types must match.
RequiredData Types properties
Message contracts visible at this node.
valueTypeTypeOutput or response message contract. The exact meaning is operator-specific.
RequiredDefault:UnknownTypeFunction properties
Generated business-logic implementation and its placement.
functionNamesymbolGenerated business-logic type or function name.
RequiredfunctionPackagestringSubdirectory under the generated functions package.
publicFunctionbooleanPlaces the generated function in a shared package instead of the service-internal package.
Default:falsefunctionDescriptiontextDocumentation comment emitted with the generated function.
functionInitializerGroupstringDependency-injection initialization group for the generated function.
functionModuleModuleShared module that owns the function.
Visible when publicFunction is true.Execution properties
Pipeline placement and runtime policy.
pipelinestringVisual and configuration grouping inside the owning service.
ttlmillisecondsLifetime of unmatched join state. Zero uses the runtime default/no expiry behavior.
Default:0Minimum: 0renewTTLbooleanResets TTL whenever another value for the same key arrives.
Default:falsePosition properties
Designer-only canvas coordinates.
xPosnumberHorizontal designer coordinate. It has no runtime effect.
RequiredyPosnumberVertical designer coordinate. It has no runtime effect.
RequiredConfiguration example
type: MultiJoin
leftSource: orderById
rightSources: [paymentByOrder, stockByOrder]
joinStorage: HashMap
valueType: ReadyOrder