Hi Kafka Community,

I’m seeking some clarity around the design decisions related to the
invocation of open(TopicPartitions) and close(TopicPartitions) within
SinkTask, particularly in the context of *Incremental Cooperative
Rebalancing*.

   1.

   *Conditional Invocation Based on Non-Empty Partitions*
   Currently, open() and close() are invoked only when the TopicPartitions
   list is non-empty. Would it be more consistent to always invoke these
   methods, regardless of partition count, and delegate the decision-making to
   the sink implementation? In some cases—like leader election logic within
   the sink—this behavior can have side effects, as the sink may rely on these
   callbacks to manage state transitions.
   2.

   *Assumption of Consumer Group Stability*
   Can we safely assume that when open(TopicPartitions) or
   close(TopicPartitions) is called, *the consumer group has reached a
   stable state*? If so, it would be helpful to understand how tightly this
   contract is maintained across various rebalance scenarios.
   3.

   *Proposal: Unconditionally Invoke Callbacks*
   Would it be feasible (and safe) to modify the current behavior so that
   open() and close() are invoked even when the partition list is empty?
   This would provide a consistent lifecycle signal to all sink
   implementations and help those relying on deterministic coordination logic
   (e.g., for leader election, cleanup, or snapshotting).

Appreciate your time and insights on this!

Best regards,
*Pritam Kumar*

Reply via email to