Я новичок в Кафке. Я отправлю пару сообщений в тему Kafka с несколькими разделами и прочитаю их. В конце, если все связанные сообщения будут использованы, я отправлю уведомление.
Например:
Создайте тему с 3 partitions
for 1 to n:
sendItemToKafkaTopic(item-unique-key)
end
затем потребляйте его:
processItem (1 to n) с масштабируемой системой и, наконец, n. item отправить уведомление о завершении.
Примечание. Сторона производителя должна работать одновременно, чтобы не было одной массовой операции.
Есть ли какое-нибудь предложение? Кстати, решение Kafka не требуется. Если у вас есть другие варианты, поделитесь.

Нашел потрясающий пост по этому поводу: https://medium.com/@debyroth340/identify-job-completion-in-multi-phase-kafka-consumers-33ee8a974963
Чтобы сделать снимок, вы можете использовать AdminClient в Kafka.
TopicPartition tp = new TopicPartition(topicName, 0);
Map<TopicPartition, OffsetSpec> topicPartitionOffsets = Map.of(
tp,OffsetSpec.latest());
var offsets = adminClient.listOffsets(topicPartitionOffsets);
Чтобы найти группы потребителей: Apache Kafka получит список потребителей по определенной теме Найдя группы потребителей, вы можете получить смещения групп потребителей.
Вы можете попытаться получить верхнюю границу темы и последнее зафиксированное смещение группы потребителей, что даст вам LAG темы. Если ваш LAG равен 0, тогда будут использованы все сообщения.