Produzir e resetar offsets

Eu cuido das filas. Você dita as regras.
Ler nunca muda nada. Duas coisas mudam, e as duas ficam atrás de uma janela que explica a consequência e pergunta por quê.
Produzir uma mensagem
Protocolar uma cópia corrigida numa mensagem (ou uma mensagem nova) abre um formulário em três partes:
- Onde: o tópico.
- O quê: a chave (opcional) e o payload. Numa cópia corrigida, o original já vem preenchido para você só consertar o que está errado.
- Por quê: o motivo, por exemplo Reprocessando depois da correção de schema.
A janela lembra que isso adiciona uma mensagem de verdade num tópico de verdade. Protocolar manda.
O motivo viaja com a mensagem num header marshall-reason, para quem achar depois saber que veio daqui e por quê.
Não dá para protocolar um registro Avro decodificado como cópia: isso colocaria JSON num tópico que todo consumidor lê como Avro. O Marshall recusa e explica.
Resetar os offsets de um grupo
Mover a posição… num grupo de consumo, para um dos tópicos dele:
- Retomar de: um offset, ou O começo. Vale para todas as partições do tópico.
- Por quê: o motivo.
Se o offset passar do fim de alguma partição, o Marshall diz quais antes do botão: o Kafka aceitaria, e a próxima leitura de cada consumidor ficaria fora do intervalo.
Mover aplica a mudança. Isso faz um grupo de consumo de verdade reprocessar.
Recusado enquanto o grupo tem membros
A API de admin do Kafka deixa resetar um grupo que ainda tem membros, mas os membros commitam por cima da mudança em segundos. O Marshall recusa. Pare os consumidores antes; quando ninguém estiver consumindo o grupo, nada vai brigar com você.