Pular para o conteúdo principal

Anatomia de uma mensagem

Tudo o que trafega entre um Input, um Transform e um Output é uma mensagem. Ela tem três partes, e é o mesmo formato do começo ao fim da pipeline.

ParteO que é
ValueO conteúdo em si — o corpo da mensagem
KeyUma chave que identifica o registro
HeadersPares nome/valor com informação sobre a mensagem, não o conteúdo dela

Value

O conteúdo. É o que a maioria dos Outputs grava.

A plataforma não valida nem reformata o Value: o que o Input coloca ali é o que o Output recebe. O formato — JSON, texto puro, XML — é combinado entre as duas pontas.

Uma mensagem pode ter Value vazio. Isso não é erro: é o que acontece, por exemplo, quando um registro é apagado na origem e só a identificação dele importa.

Key

A Key identifica o registro que a mensagem representa.

Ela é também o que define a ordem: o Kafka garante ordem por partição, e a partição é escolhida pela Key. Mensagens com a mesma Key sempre chegam na ordem em que foram publicadas. Mensagens sem Key são espalhadas entre as partições, sem garantia de ordem entre si.

Headers

Informação sobre a mensagem — de onde veio, o que ela representa, como deve ser tratada.

Quem preenche e quem lê

Cada peça define o que faz com essas três partes, e isso está documentado na página de cada uma:

  • Inputs — cada página tem a seção "O que este Input escreve no tópico", com um exemplo da mensagem gerada.
  • Transform — recebe as três partes e decide o que devolver.
  • Outputs — cada página tem a seção "O que este Output precisa ler do tópico", com um exemplo da mensagem esperada.

A visão geral dos Outputs traz a tabela de compatibilidade: quais deles aceitam qualquer mensagem e quais exigem um formato específico. É a página para consultar antes de ligar um Input a um Output pela primeira vez.