We need to make backoff time during consumer rebalance directly configurable, instead of relying on zkSyncTime.
The reasoning is the following. A ZK follower can be up to zkSyncTime behind the ZK leader. Since a ZK client can do reads from any ZK server, it's possible for a rebalance to fail because one of the consumers reads stale data. Waiting for at least zkSyncTime allows the ZK follower to have enough time to sync up with its leader.
Just wondering why we want to make zkSyncTime as the default value of fetcherBackoffMs at the first place? These two configs do not seem related to me.
Thanks for the review. Committed.