Guia de Integração Kafka

Prev Next

O Xtremepush suporta o Kafka como um canal de ingestão de dados de alta produtividade, permitindo streaming de eventos e sincronização de perfis em larga escala. Este guia cobre tudo o que sua equipe técnica precisa para estabelecer uma integração bem-sucedida.

Visão geral

A integração com Kafka permite que seus sistemas backend transmitam dados de eventos e sincronizem perfis de usuário com Xtremepush em alto volume e baixa latência. Em vez de fazer chamadas individuais de API por evento ou atualização de usuário, sua infraestrutura publica mensagens para tópicos Kafka que o Xtremepush consome continuamente.

Este guia cobre as duas abordagens de integração disponíveis, os formatos de tópicos e esquemas de carga útil necessários, além de orientações sobre o manejo de cenários de dados de alto volume.

Antes de começar

Antes de iniciar sua integração com Kafka, certifique-se de ter o seguinte em prática:

  • Credenciais Kafka — cada projeto é fornecido com um nome de usuário, senha e nomes de tópicos únicos. Entre em contato com o suporte da Xtremepush se ainda não recebeu esses recursos.

  • Endereços IP de saída — você precisará fornecer os endereços IP de onde sua infraestrutura enviará eventos para que o Xtremepush possa incluí-los.

  • Suporte a SCRAM-SHA-512 — todas as conexões utilizam autenticação SCRAM-SHA-512. Confirme se sua infraestrutura suporta isso antes de começar.

  • Estimativas de volume — volumes aproximados de eventos tanto para ambientes de teste quanto de produção, para que o Xtremepush possa escalar os trabalhadores adequadamente.

Arquitetura & conceitos-chave

Antes de iniciar sua integração, você precisará entender como o Xtremepush interage com sua infraestrutura Kafka.

Tópicos

Os dados são organizados por tópicos. Cada projeto tem dois tópicos correspondentes: eventos e usuários. Credenciais únicas são fornecidas por projeto. Mais informações sobre os Tópicos podem ser encontradas em Formatos de Tópicos e requisitos de carga útil.

Partições e escalonamento

Os tópicos podem ser separados em partições, permitindo que o Xtremepush escale os consumidores horizontalmente para lidar com maior rendimento. Mensagens com a mesma chave são roteadas para a mesma partição, garantindo que a ordem seja mantida por usuário.

Compensações

Cada consumidor mantém seu próprio registro de progresso (um compenso). Se uma conexão for interrompida, o Xtremepush retoma a partir do último deslocamento reconhecido para garantir que não haja perda de dados.

Domínios de alto volume — estratégia de agregação

Quando o volume bruto de eventos é extremamente alto (como jogos em nível de spin ou deltas de carteiras rápidas), recomendamos agregar dados antes de publicar no Kafka. Isso mantém o fluxo previsível, preserva o valor do negócio e ajuda a gerenciar os custos excedentes do evento. Mais informações sobre isso podem ser encontradas em Agregando eventos de alto volume upstream.

Abordagens de integração

Existem duas rotas principais para estabelecer uma conexão Kafka. A rota escolhida determina o nível de configuração exigido da sua equipe técnica.

Rota 1: Push do cliente para o formato padrão Xtremepush

Essa é a rota mais eficiente e requer configuração apenas do lado do Xtremepush. Sua infraestrutura produz (envia) dados diretamente para os tópicos hospedados em nossos corretores no formato exigido.

Cada projeto é fornecido com dois tópicos (eventos e usuários) e um nome de usuário e senha únicos, fornecidos pelo suporte Xtremepush. Note que os atributos do perfil também podem ser definidos via uma carga útil de evento usando o objeto user_attributes, da mesma forma que a API Xtremepush.

Autenticação

As conexões são estabelecidas usando SCRAM-SHA-512. As credenciais são únicas por projeto e fornecidas pelo suporte do Xtremepush.

O que precisamos de você

Para completar a configuração, exigimos o seguinte da sua equipe técnica:

  • Os endereços IP de saída de onde sua infraestrutura enviará eventos.

  • Confirmação de que você consegue se conectar via autenticação SCRAM-SHA-512.

  • Volumes esperados de eventos — isso determina como escalamos os trabalhadores internos. Por favor, forneça estimativas tanto para ambientes de teste quanto de produção.

  • Detalhes de qualquer necessidade de carregamento em massa — enviar grandes volumes de mensagens em um curto período pode causar atrasos no processamento. Se o carregamento em massa faz parte do seu caso, precisamos discutir isso desde o início. Veja a nota na seção de tópicos Usuários para mais detalhes.

  • Quando você opera múltiplos projetos (por exemplo, diferentes marcas ou regiões), confirmação de que você pode produzir os dados de cada projeto para um conjunto separado de tópicos do nosso lado.

Rota 2: Ecossistema de parceiros (integrações padrão)

Se você usar um dos nossos parceiros principais da plataforma, a integração com o Kafka é em grande parte pré-configurada.

Parceiro

Método de configuração

GiG

Configuração inicial via Xtremepush Marketplace; tópicos adicionais gerenciados pelos Serviços Técnicos

OpenBet

Configuração inicial via Xtremepush Marketplace; tópicos adicionais gerenciados pelos Serviços Técnicos

Bede

Gerenciado por meio do nosso middleware — forneça as credenciais necessárias para o parceiro iniciar a ingestão

TodoMatriz

Gerenciado por meio do nosso middleware — forneça as credenciais necessárias para o parceiro iniciar a ingestão

Perguntas frequentes

O que acontece se nossa conexão com Kafka cair no meio do caminho?

Os consumidores do Xtremepush mantêm um offset para cada tema. Se uma conexão for interrompida, o processamento retoma a partir do último deslocamento reconhecido — nenhum dado é perdido.

Podemos usar as mesmas credenciais em vários projetos?

Não. As credenciais são únicas por projeto. Se você opera vários projetos (por exemplo, marcas ou regiões diferentes), cada projeto exige seu próprio conjunto de tópicos e credenciais.

Qual formato de carimbo de data e hora devemos usar?

Os timestamps devem seguir o formato YYYY-MM-DD HH:MM:SS ou YYYY-MM-DD HH:MM:SS.mmm para precisão milisssegundo, como mostrado nos exemplos de esquemas acima.

O que acontece se enviarmos um evento para um usuário que ainda não existe?

Um novo perfil de usuário será criado automaticamente quando um user_id for encontrado pela primeira vez no tema eventos. Se você precisar que atributos de perfil sejam definidos antes do processamento dos eventos, envie o registro de usuário pelo tópico de usuários primeiro.

Temos volumes de eventos muito altos (por exemplo, dados em nível de spin). Como devemos lidar com isso?

Recomendamos agregar upstream antes de publicar no Kafka. Veja a seção Domínios de alto volume — estratégia de agregação acima e discuta seu caso de uso específico com sua equipe de conta Xtremepush antes de lançar.