Re: Kafka Streams: joins without windowing (KStream) and without being KTables

2016-09-28 Thread Matthias J. Sax
Hi, I just realized that this thread got somehow dropped... Sorry for that. If you use KTable, each update to RocksDB is also written into a changelog topic (for fault-tolerance and rebalancing). The changelog topic is a *compacted topic*, thus, it is guaranteed that the latest value for each key

Re: Kafka Streams: joins without windowing (KStream) and without being KTables

2016-09-12 Thread Guillermo Lammers Corral
Thanks for the information, very useful. Finally, I have two KStream. I use aggregateByKey for one of them to get a (I've assumed that we'll receive this source first), thus I can join the result with the other KStream by key using KStream-KTable join. Now, I'm trying to understand the state sto

Re: Kafka Streams: joins without windowing (KStream) and without being KTables

2016-09-06 Thread Michael Noll
Also, another upcoming feature is (slightly simplified description follows) "global" state/KTable. Today, a KTable is always partitioned/sharded. One advantage of global state/tables will be for use cases where you need to perform non-key joins, similar to what Guillermo described previously in t

Re: Kafka Streams: joins without windowing (KStream) and without being KTables

2016-09-06 Thread Matthias J. Sax
Hi, currently, in DSL only primary-key joins are supported. However in you case, you have a non-primary-key join. There is already a JIRA to add support for this: https://issues.apache.org/jira/browse/KAFKA-3705 Currently, you will need to use Processor API. For the non-time-based input (if not t

Re: Kafka Streams: joins without windowing (KStream) and without being KTables

2016-09-05 Thread Guillermo Lammers Corral
Hi Matthias, Good question... the main problem is related with the kind of my data. The first source of data is time based and the second one not but both have a field with the same value (I don't know how to use it in the join without being key. It can't, let me explain why): ObjectX (sameValue,

Re: Kafka Streams: joins without windowing (KStream) and without being KTables

2016-09-05 Thread Matthias J. Sax
Hey, are you sure, you want to join everything? This will result in a huge memory footprint of your application. You are right, that you cannot use KTable, however, windowed KStream joins would work -- you only need to specify a huge window (ie, use Long.MAX_VALUE; this will effectively be "infini

Kafka Streams: joins without windowing (KStream) and without being KTables

2016-09-05 Thread Guillermo Lammers Corral
Hi, I've been thinking how to solve with Kafka Streams one of my business process without success for the moment. Hope someone can help me. I am reading from two topics events like that (I'll simplify the problem at this point): ObjectX Key: String Value: String ObjectY Key: String Value: Strin