@Override
    public boolean isDone() {
        if (nextRecordMetadata != null)
            return nextRecordMetadata.isDone();
        return this.result.completed();
    }
This method is used when we have to split a large batch in smaller ones. A chained metadata will allow the
future that has already returned to the users to wait on the newly created split batches even after the
old big batch has been deemed as done.
clients/src/main/java/org/apache/kafka/clients/producer/internals/FutureRecordMetadata.java