With the introduction of versioned state stores in KIP-889, we should leverage them to provide improved join semantics.
As described in KIP-914, we will make the following four improvements:
- stream-table joins will perform a timestamped lookup (using the stream-side record timestamp) if the table is versioned
- table-table joins, including foreign key joins, will not produce new join results on out-of-order records (by key) from versioned tables
- table filters will disable the existing optimization to not send duplicate tombstones when applied to a versioned table
- table aggregations will ignore out-of-order records when aggregating a versioned table