private void writeTaskConfigs(String connName, List<Map<String, String>> taskConfigs) {
        if (!taskConfigs.isEmpty()) {
            if (configState.targetState(connName) == TargetState.STOPPED)
                throw new BadRequestException("Cannot submit non-empty set of task configs for stopped connector " + connName);
        }

        writeToConfigTopicAsLeader(
                "writing " + taskConfigs.size() + " task configs for connector " + connName + " to the config topic",
                () -> configBackingStore.putTaskConfigs(connName, taskConfigs)
        );
    }
Request task configs from the connector and write them to the config storage in case the configs are detected to
have changed. This method retries infinitely with exponential backoff in case of any errors.

@param initialRequestTime the time in milliseconds when the original request was made (i.e. before any retries)
@param connName the name of the connector
@param exponentialBackoff {@link ExponentialBackoff} used to calculate the retry backoff duration
@param attempts the number of retry attempts that have been made
connect/runtime/src/main/java/org/apache/kafka/connect/runtime/distributed/DistributedHerder.java