KV<K,A> + KV<K,B> → RJoin
Combines two keyed streams using a stateful matching policy.
When to use
Use Join for two-way keyed correlation where arrival order and missing sides matter.
Behavior
- Stores unmatched values by key.
- joinType controls when output is allowed.
- The function combines both sides into R.
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.
RequiredjoinTypeInner | Left | Right | OuterControls which side can produce output when a matching key is absent.
Default:LeftAllowed: Inner, Left, Right, OuterjoinStorageHashMap | 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.
RequiredrightSourceKeyed streamSecond keyed input of Join. Its key type must equal the left key type.
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: Join
leftSource: orderById
rightSource: paymentByOrder
joinType: Left
joinStorage: HashMap
ttl: 30000
valueType: PaidOrder