So I am trying to process incoming events, that may or may not actually update the state of my output object. Originally I was doing this with a KStream/KTable join, until I saw the discussion about "KTable in Compact Topic takes too long to be updated", when I switched to groupByKey().aggregate().
Some events may not result in a state change. For example, once I have an incoming success event, I emit a success output and future incoming failure events will be ignored. My intention is to only emit a record from the aggregate KTable if the aggregate record actually changed. But I can't figure out how to do that within the aggregator interface. I've tried returning the incoming aggregate object when nothing changes, but I still get a record emitted from the table.