Stream-table join
A stream-table join combines each incoming stream record with the current table value associated with the record’s matching key.
Kafka Streams in Action, Second Edition
A stream-table join combines records from a KStream with corresponding records in a KTable according to matching keys.
- How it is used
- Enriches real-time stream events by looking up current keyed information in a table.
- How deep it goes
- Explains partitioning, join direction, triggers, join types, and implementation APIs, while deferring temporal semantics to versioned state stores.
- Examples
- Uses clickstream-user enrichment and rewards-member enrichment through Kafka Streams code and ksqlDB statements.
- What you can do after
- Build it from scratch with Kafka Streams or ksqlDB, selecting partitioning and outer-join behavior for an enrichment pipeline.
Read how Kafka Streams in Action, Second Edition explains stream-table join →
Apache Kafka in Action
A stream-table join combines each incoming stream record with the table value associated with the record's key.
- How it is used
- Enriches continuous stream events with the latest keyed state held in a table.
- How deep it goes
- Explains keyed lookup, trigger direction, and co-partitioning, while stopping short of detailed state-store internals.
- Examples
- Uses salesData with products, plus loyalty cards with customers, to demonstrate enrichment and contrasting join triggers.
- What you can do after
- Apply it via Kafka Streams by joining a KStream with a KTable and supplying a ValueJoiner.
Read how Apache Kafka in Action explains stream-table join →
Related concepts
- joincontrasts with · A join is an operation that combines records or rows from multiple data sources according to specified matching conditions or relationships.
- ValueJoinerused by · ValueJoiner is a Kafka Streams interface that combines values from matching records in two joined streams into a result value.
- repartitionaddressed by · Repartitioning is the redistribution of records or items across partitions according to a partitioning rule, potentially changing the number of partitions.
- KTableused by · KTable is a Kafka Streams abstraction representing the latest value associated with each key as a continuously updated table.
- table-to-table joincontrasts with · A table-to-table join combines two changing keyed tables and updates the resulting values when either table changes.
These guides are generated from the text of Manning books by Manning's knowledge graph and link to the sections they draw on. The full books are available on liveBook and at manning.com.

