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*