public CompletableFuture<Void> start(ConsumerCallback callback) {
            consumers().forEach(consumer -> consumer.start(callback));

            // wait for all consumers to join the group
            return CompletableFuture.allOf(consumers()
                .map(Consumer::started)
                .toArray(CompletableFuture[]::new));
        }
Called when a message is received.

@param topicPartition the topic partition of the received message
@param payload        the received message payload
@param sendTimeNanos  the time in nanoseconds when the message was sent
tools/src/main/java/org/apache/kafka/tools/automq/perf/ConsumerService.java