chia7712 commented on code in PR #22784:
URL: https://github.com/apache/kafka/pull/22784#discussion_r3570928415


##########
docs/operations/basic-kafka-operations.md:
##########
@@ -62,6 +62,16 @@ $ bin/kafka-topics.sh --bootstrap-server localhost:9092 
--alter --topic my_topic
 
   * **Key Distribution Changes**: If data is partitioned by `hash(key) % 
number_of_partitions`, the default partitioner's mapping logic changes when the 
partition count increases. This means that messages with the same key may be 
routed to different partitions after the expansion, potentially affecting 
message ordering guarantees for existing keys. Kafka will not attempt to 
automatically redistribute existing data.
   * **Potential Data Loss with `auto.offset.reset=latest`**: Existing 
consumers configured with `auto.offset.reset=latest` might miss messages 
produced to the new partitions during the window between partition creation and 
consumer discovery. This occurs because consumers may not immediately detect 
the new partitions, and any messages produced to those partitions before the 
consumer rebalances will be skipped.
+    **Recommendation:** Use `auto.offset.reset=by_duration:<duration>` instead 
of `latest` for consumers that read from topics whose partition count may 
increase. When a partition has no committed offset, `by_duration` performs a 
`ListOffsets` lookup for `now() - duration` to determine the starting position. 
If the target timestamp is earlier than the partition's creation time, the 
lookup returns offset `0`, ensuring that records produced during the 
partition-discovery gap are still consumed. Consumers with a valid committed 
offset are unaffected, so restarts do not replay historical data.

Review Comment:
   Should we highlight that time synchronization between the client and server 
is a strict requirement when using by_duration as a solution



-- 
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]

Reply via email to