Re: Issues with KTable to KTable leftJoin

2019-02-01 Thread Matthias J. Sax
> So, per my understanding maybe if I materialize >> the first join and then use join it with the other topic, this should >> change? Yes. For this case, we don't need to recompute the old value, because the downstream operator can lookup the old join result in it's store. Note that the `ValueJoi

Re: Issues with KTable to KTable leftJoin

2019-02-01 Thread Murilo Tavares
Hi Matthias Thank you for your help. So, per my understanding maybe if I materialize the first join and then use join it with the other topic, this should change? What I don't understand is why sending the old value AFTER the new value? That still looks wrong to me. Specially because in a leftJoin

Re: Issues with KTable to KTable leftJoin

2019-02-01 Thread Matthias J. Sax
Sounds like expected behavior to me. Note, that by default, the result KTable for a KTable-KTable join is not materialized. To be able to compute the correct result for this case, we need to send the old and new join result downstream to allow the downstream join to compute the correct result. It'

Re: Issues with KTable to KTable leftJoin

2019-01-29 Thread Murilo Tavares
Adding a bit more to this, it looks like an issue with cascading leftJoins... I can see that internally, the ValueJoiner is being called by a KTableKTableRightJoin$KTableKTableRightJoinProcessor, with sendOldValues = true. Not quite sure, but it looks to me that when we create "tmp = A.leftJoin(B)"

Issues with KTable to KTable leftJoin

2019-01-29 Thread Murilo Tavares
Hi I am trying to understand why a KTable to KTable left join is being called twice when I receive a message on the right table. Here is my Topology: Serde authorSerde = ... Serde> bSetSerde = ... Serde> apSetSerde = ... KTable authorTable = builder.table(AUTHOR_TOPIC, Consumed.with(Serdes.String(