Estamos construindo um sistema pub-sub simples usando Kafka. O editor é um serviço que recebe uma série de mensagens (chamadas de Bloco) de um aplicativo cliente que é publicado no tópico Kafka. Temos 4 partições e 4 instâncias de um assinante que lida com elas. O Bloco (array) pode ter um limite de 10 mensagens atualmente (restrições de negócios), mas poderá chegar a 25 no futuro. Será melhor escrever cada mensagem no Bloco individualmente ou colocar o Bloco inteiro de uma vez como um evento Kafka.
Nossa ideia é fazer um bloco de uma vez para que uma instância do consumidor possa processar todas as mensagens. As demais instâncias consumidoras podem estar processando outros Blocos que o Publicador está recebendo. Existe alguma orientação/prática recomendada em torno de tais casos de uso?
Kafka armazena bytes. Não há práticas recomendadas aqui "para Kafka", portanto, em última análise, depende dos seus requisitos de processamento.
Lembre-se de que o Kafka tem um limite de tamanho de registro padrão; portanto, matrizes serializadas grandes devem ser divididas se não substituirem as configurações padrão. Mas, se você serializar dados em formatos binários compactos como Protobuf ou Avro, eles ocuparão menos espaço