public KafkaFuture<Map<String, KafkaFuture<Uuid>>> producersClientInstanceIds(final Duration timeout) {
        boolean setDeadline = false;

        if (producerInstanceIdFuture.isDone()) {
            if (producerInstanceIdFuture.isCompletedExceptionally()) {
                producerInstanceIdFuture = new KafkaFutureImpl<>();
                setDeadline = true;
            }
        } else {
            setDeadline = true;
        }

        if (processingMode.equals(StreamsConfigUtils.ProcessingMode.EXACTLY_ONCE_ALPHA)) {
            throw new UnsupportedOperationException("not yet implemented");
        } else {
            if (threadProducerInstanceIdFuture.isDone()) {
                if (threadProducerInstanceIdFuture.isCompletedExceptionally()) {
                    threadProducerInstanceIdFuture = new KafkaFutureImpl<>();
                    setDeadline = true;
                }
            } else {
                setDeadline = true;
            }
            producerInstanceIdFuture.complete(Collections.singletonMap(getName() + "-producer", threadProducerInstanceIdFuture));

            if (setDeadline) {
                fetchDeadlineClientInstanceId = time.milliseconds() + timeout.toMillis();
            }
        }

        return producerInstanceIdFuture;
    }
Produces a string representation containing useful information about a StreamThread, starting with the given indent.
This is useful in debugging scenarios.

@return A string representation of the StreamThread instance.
streams/src/main/java/org/apache/kafka/streams/processor/internals/StreamThread.java