This is an automated email from the ASF dual-hosted git repository.

mjsax pushed a commit to branch 2.6
in repository https://gitbox.apache.org/repos/asf/kafka.git


The following commit(s) were added to refs/heads/2.6 by this push:
     new 078f7d4  KAFKA-6453: Document how timestamps are computed for 
aggregations and joins (#9009)
078f7d4 is described below

commit 078f7d4b77b61ba7a5a894bf6b240fb8cc366059
Author: Jim Galasyn <[email protected]>
AuthorDate: Mon Jul 13 15:01:14 2020 -0700

    KAFKA-6453: Document how timestamps are computed for aggregations and joins 
(#9009)
    
    Reviewer: Matthias J. Sax <[email protected]>
---
 docs/streams/core-concepts.html | 28 +++++++++++++++++++++++++++-
 1 file changed, 27 insertions(+), 1 deletion(-)

diff --git a/docs/streams/core-concepts.html b/docs/streams/core-concepts.html
index 43e1502..d8cbd7a 100644
--- a/docs/streams/core-concepts.html
+++ b/docs/streams/core-concepts.html
@@ -128,7 +128,33 @@
     </ul>
 
     <p>
-       Note, that the describe default behavior can be changed in the 
Processor API by assigning timestamps to output records explicitly when calling 
<code>#forward()</code>.
+        You can change the default behavior in the Processor API by assigning
+        timestamps to output records explicitly when calling 
<code>#forward()</code>.
+    </p>
+
+    <p>
+        For aggregations and joins, timestamps are computed by using the
+        following rules. 
+    </p>
+
+    <p>
+        <ul>
+            <li>For joins (stream-stream, table-table) that have left and right
+                input records, the timestamp of the output record is assigned
+                <code>max(left.ts, right.ts)</code>.</li>
+            <li>For stream-table joins, the output record is assigned the 
timestamp
+                from the stream record.</li>
+            <li>For aggregations, Kafka Streams also computes the 
<code>max</code>
+                timestamp over all records, per key, either globally (for 
non-windowed)
+                or per-window.</li>
+            <li>For stateless operations, the input record timestamp is passed 
through.
+                For <code>flatMap</code> and siblings that emit multiple 
records, all
+                output records inherit the timestamp from the corresponding 
input record.</li>
+        </ul>
+    </p>
+    
+    <p>
+
     </p>
 
     <h3><a id="streams_concepts_aggregations" 
href="#streams_concepts_aggregations">Aggregations</a></h3>

Reply via email to