A table-to-table join combines two changing tables and continuously updates the result when either table changes. Each side represents the latest state for a key, so a change on one side can look up the matching value on the other. section 12.4.3
Use a table-to-table join reliably by checking these conditions:
- Co-partition both inputs: use the same number of partitions and the same join key. Otherwise, change one topic's key before joining. section 12.4.3
- Choose the join semantics deliberately. An inner join suits relationships where an unmatched record has no useful meaning. section 12.4.3
- Expect updates from both inputs, unlike a stream-table join, which is triggered by new stream data. section 12.7
Attach customers to loyalty cards
Read loyalty_cards and customers as tables, join them by primary key, and use a ValueJoiner to attach the customer to each loyalty card. A customer update can therefore revise the joined result even when the loyalty-card table does not change. section 12.4.3

