mjsax commented on a change in pull request #11114:
URL: https://github.com/apache/kafka/pull/11114#discussion_r675707618
##########
File path: docs/streams/upgrade-guide.html
##########
@@ -135,25 +135,30 @@ <h3><a id="streams_api_changes_300"
href="#streams_api_changes_300">Streams API
We removed the default implementation of
<code>RocksDBConfigSetter#close()</code>.
</p>
<p>
- We dropped the default 24 hours grace period for windowed operations
such as Window or Session aggregates, or stream-stream joins.
- This period determines how long after a window ends any out-of-order
records will still be processed.
- Records coming in after the grace period has elapsed will be dropped
from those windows.
- With a long grace period, though Kafka Streams can handle out-of-order
data up to that amount of time, it will also incur a high and confusing latency
for users,
- e.g. suppression operators with the default won't emit results up for
24 hours, while in practice out-of-order data usually has a much smaller
time-skewness.
- Instead of abstracting this config from users with a long default
value, we introduced new constructs such as
<code>TimeWindows#ofSizeAndGrace</code> to let callers always set it upon
constructing the windows;
- the other setters such as <code>TimeWindows#grace</code> are
deprecated and will be removed in the future.
+ We dropped the default 24 hours grace period for windowed operations
such as Window or Session aggregates, or
+ stream-stream joins. This period determines how long after a window
ends any out-of-order records will still
+ be processed. Records coming in after the grace period has elapsed are
considered late and will be dropped.
+ But in operators such as suppression, a large grace period has the
drawback of incurring an equally large
+ output latency. The current API made it all too easy to miss the grace
period config completely, leading you
+ to wonder why your application seems to produce no output -- it
actually is, but not for 24 hours.
+ <p>
+ To prevent accidentally or unknowingly falling back to the default
24hr grace period, we deprecated all of the
+ existing static constructors for the <code>indows</code> classes (such
as <code>TimeWindows#of</code>). These
+ are replaced by new static constructors of two flavors:
<code>#ofSizeAndGrace</code> and <code>#ofSizeWithNoGrace</code>
+ (these are for the <code>TimeWindows</code> class; analogous APIs
exist for the <code>JoinWindows</code>,
Review comment:
For JoinWindows and left/outer join, we also enable the spurious result
fix (as pointed out in the next paragraph -- might be good to call out here,
too, by referring to the next paragraph).
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]