[ https://issues.apache.org/jira/browse/KAFKA-7577?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16692143#comment-16692143 ]
Daren Thomas commented on KAFKA-7577: ------------------------------------- This is the detailed behavior of KGroupedTable: * When a tombstone record – i.e. a record with a {{null}} value – is received for a key (e.g., DELETE), then only the subtractor is called. Note that, whenever the subtractor returns a {{null}} value itself, then the corresponding key is removed from the resulting {{KTable}}. If that happens, any next input record for that key will trigger the initializer again. That is the behavior I hoped to see. It seems that my aggregation is following the semantics of KGroupedStream instead. > Semantics of Table-Table Join with Null Message Are Incorrect > ------------------------------------------------------------- > > Key: KAFKA-7577 > URL: https://issues.apache.org/jira/browse/KAFKA-7577 > Project: Kafka > Issue Type: Bug > Components: streams > Affects Versions: 1.1.0 > Reporter: Daren Thomas > Priority: Major > > Observed behavior of Table-Table join with a Null Message does not match the > semantics described in the documentation > ([https://docs.confluent.io/current/streams/developer-guide/dsl-api.html#ktable-ktable-join).] > The expectation is: > * Message A results in [A, null] from the Left Join > * Message null (tombstone) results in null (tombstone) from the Left Join > The observed behavior was that the null (tombstone) message did not pass > through the Left Join to the output topic like expected. This behavior was > observed with and without caching enabled, against a test harness, and > against a local Confluent 5.0.0 platform. It was also observed that the > KTableKTableLeftJoinProcessor.process() function was not called for the null > (tombstone) message. -- This message was sent by Atlassian JIRA (v7.6.3#76005)