I am writing an exactly-once Kafka sink for Apache Beam.
In order to avoid duplicates due to retries, it stores a sequential id and
producer signature in consumer group metadata, and commits it atomically
with messages (using sendOffsetsToTransaction()).
I have a couple of clarification questions on partition metadata associated
with a consumer group.
- Looks like a partition number could be larger than number of
partitions for a topic. Is this formally supported (which is great!)?
- E.g. I was able to set and read partition metadata for partition
#20 for a topic with 4 partitions (though `console-consumer-group` didn't
quite work.).
- This is critical information for a sink. But looks like the metadata
gets purged in 24 hours (server config) if it is inactive. Is there a way
to set a longer TTL programatically?
Thanks.
Raghu.