Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...


Definition: "idempotent update" is one in which the new result and prior
result,  when serialized, are identical byte arrays.

Note: an "update" is a concept that only applies to Table operations, so
the concept of an "idempotent update" also only applies to Table operations.
See https://kafka.apache.org/documentation/streams/developer-guide/dsl-api.html#streams_concepts_ktable
for more information.

Given that definition, we propose for Streams to drop idempotent updates
in any situation where it's possible and convenient to do so. For example,
any time we already have both the prior and new results serialized, we
may compare them, and drop the update if it is idempotent.

Note that under this proposal, we can implement idempotence checking
in the following situations:
1. Any aggregation (for example, KGroupedStream, KGroupedTable,
     TimeWindowedKStream, and SessionWindowedKStream operations)
2. Any Materialized KTable operation
3. Repartition operations, when we need to send both prior and new results

...

dropped-idempotent-updates : (Level 1 3 - Per Processor Node) DEBUG (rate | total)  

...