Pular para o conteúdo principal

Kafka na plataforma

O Kafka é o sistema de filas que fica por baixo de toda pipeline. Para usar pipelines você não precisa saber nada dele — os tópicos são criados automaticamente. A área Kafka do console existe para quem precisa de controle direto: administrar os clusters, inspecionar tópicos ou usar conectores do ecossistema Kafka Connect.

Brokers

Um broker é o cluster Kafka em si — o serviço que guarda as mensagens. Em Kafka → Brokers você cria e acompanha os clusters da sua empresa: quantos nós, quanto disco, qual o estado de saúde de cada um.

Toda pipeline precisa de um broker para funcionar, já que é nele que os tópicos das peças vivem.

Tópicos

Platform → Tópicos lista todos os tópicos do broker, incluindo os que as pipelines criaram sozinhas. Para cada um você vê o número de partições, quanto dado está retido e quanto cada grupo de consumo ainda tem para ler.

Essa última informação — o lag — é a medida mais direta de saúde de uma integração: lag perto de zero significa que o Output está acompanhando o Input.

Kafka Connect não é Input/Output

Esta é a confusão mais comum da plataforma, então vale ser direto:

Input / OutputKafka Connect
O que éPeças de uma pipelineMecanismo do ecossistema Kafka para mover dados
Onde ficaPlatform → PipelinesKafka → Kafka Connect e Platform → Conectores
Como se configuraNo editor visual da pipelineComo um conector, com sua própria configuração
Quando usarSempre que houver um Input/Output para o sistemaSó quando não houver

São dois caminhos diferentes para o mesmo objetivo. Um Output de PostgreSQL não tem nada a ver com um conector JDBC do Kafka Connect, embora ambos gravem em banco.

As telas da área Kafka Connect:

TelaPara que serve
Kafka ConnectCria e administra os clusters que executam os conectores
ConexõesCadastra as conexões com os sistemas externos
PluginsInstala os conectores disponíveis no cluster
Conectores (em Platform)Cria e acompanha cada conector em execução

Pipeline ou Kafka Connect?

Use Pipeline. Esta é a resposta na quase totalidade dos casos, e não é uma preferência de estilo — é o caminho que a plataforma suporta de ponta a ponta.

Kafka Connect fica reservado para uma única situação: quando não existe um Input ou Output para o sistema que você precisa integrar. Se existe, use pipeline.

Por que pipeline é melhor

O que você ganha
Configuração visualVocê monta arrastando peças e preenchendo campos com nome e explicação. Não há JSON de conector para escrever nem propriedade para descobrir na documentação de terceiros.
Validação antes de subirO desenho é conferido na publicação, e cada peça confere a própria configuração ao subir — tabela que não existe, chave sem índice único, credencial inválida. O erro aparece na hora, com a mensagem do que está errado.
Observabilidade integradaMétricas, logs, lag por tópico e estado de cada peça, na mesma tela, sem configurar nada.
Transformação no meio do caminhoUm Transform resolve filtro, conversão e enriquecimento com código Go próprio. No Kafka Connect isso exige encadear transformações de terceiros.
Versionamento e rollbackCada publicação gera uma versão, registrada em Git, e uma versão anterior pode ser republicada. Veja Publicar uma pipeline.
Escala automáticaCada peça escala sozinha conforme o volume.
Secrets integradosCredenciais vêm do cofre pelo nome, sem valor em arquivo de configuração.
SuporteÉ o caminho que a equipe da plataforma acompanha e evolui. Um conector da comunidade depende do mantenedor dele.

E se o que eu preciso não estiver na lista?

Antes de partir para o Kafka Connect, vale checar duas saídas que costumam resolver:

  1. Um Transform pode falar com o sistema por conta própria — ele é código Go, então uma chamada HTTP a uma API resolve muitos casos.
  2. O Output HTTP entrega em qualquer sistema que aceite uma requisição.

Se mesmo assim não houver caminho, aí sim use Kafka Connect — e vale abrir um pedido para o Input ou Output que faltou.

Conexões Kafka

Os Inputs e Outputs de Kafka podem apontar para um cluster diferente do padrão da pipeline. Esse cluster externo é cadastrado em Kafka → Conexões e depois escolhido pelo nome na configuração da peça — é assim que se lê de um Kafka de outro time ou se publica para fora.

A conexão escolhida na peça é o padrão. Ela pode ser sobrescrita por uma variável na aba Variáveis do deploy, o que permite apontar a mesma pipeline para clusters diferentes em homologação e em produção sem mexer no desenho. Veja Publicar uma pipeline.