Skip to main content

Usar a API Pub/Sub

Objetivos de aprendizagem

Após concluir esta unidade, você estará apto a:

  • Descrever as características da API Pub/Sub.
  • Descrever os diversos produtos de eventos compatíveis com a API Pub/Sub.
  • Explicar o uso do barramento de eventos e como especificar opções de reprodução.

Como transmitir eventos

Para concluir nossa pesquisa sobre APIs de dados do Salesforce, vamos falar sobre uma API que serve a um caso de uso completamente diferente. A API Pub/Sub permite que você assine fluxos de eventos em tempo real e integre sistemas externos com eventos em tempo real. Fluxos de eventos são baseados em cargas úteis personalizadas através de eventos de plataforma ou alterações em registros do Salesforce através da Captura de dados de alteração. No Salesforce, você pode publicar e assinar eventos com acionadores do Apex, Process Builder e Flow Builder. 

Como mencionado na unidade 1, a API Pub/Sub foi criada para integração de eventos bidirecionais de alta escala com o Salesforce. Use a API Pub/Sub para publicar e assinar mensagens de evento binárias com eficiência no formato Apache Avro. A API Pub/Sub é baseada em gRPC e HTTP/2 e usa um modelo baseado em demanda para que você possa controlar o fluxo de assinaturas. O serviço da API Pub/Sub é definido em um arquivo proto. Com a API Pub/Sub, você pode usar uma das 11 linguagens de programação que são compatíveis com gRPC. 

A API de transmissão pode ser usada como um radar para detectar alterações de dados e receber notificações

Rastrear alterações de dados no Salesforce é especialmente útil quando você tem dados comerciais armazenados em um sistema externo ao Salesforce. Você pode usar a API Pub/Sub para manter sua fonte externa sincronizada com seus dados do Salesforce usando eventos de captura de dados de alteração. Do mesmo modo, a API permite que você processe lógica de negócios em um sistema externo em resposta a alterações de dados no Salesforce. Por exemplo, você pode usar a API Pub/Sub para notificar um centro de processamento sempre que uma oportunidade for atualizada.

Além de alterações de dados, você pode usar a API Pub/Sub para enviar notificações personalizadas com eventos de plataforma. Por exemplo, um aplicativo pode gerar notificações de evento de plataforma para pedidos processados por um serviço de processamento de pedidos. Ou um aplicativo pode ouvir eventos de plataforma que o Salesforce publica para monitorar a atividade do usuário no Salesforce. 

API Pub/Sub e produtos de eventos

Estes são os eventos que você pode publicar e assinar.

  • Captura de dados de alteração—Com a captura de dados de alteração, você recebe alterações de registros de todos os campos alterados compatíveis. As operações de registro rastreadas incluem a criação, atualização, exclusão e cancelamento de exclusão de registros. Cada mensagem de evento contém campos de cabeçalho com informações sobre a alteração.
  • Eventos de plataforma—Com eventos de plataforma personalizados, você pode publicar e assinar notificações personalizadas. Você pode definir o esquema dos dados de evento criando campos e objetos de evento da plataforma. Além disso, você pode assinar eventos de plataforma padrão que são definidos e publicados pelo Salesforce, como eventos de monitoramento de eventos em tempo real, para monitorar atividades relacionadas a usuários e segurança no Salesforce, entre outras coisas.

Todos os produtos de eventos fazem uso do barramento de eventos, que é um serviço que permite o armazenamento e recuperação de mensagens de eventos. 

Eventos de plataforma e Captura de dados de alteração oferecem flexibilidade, escalabilidade e segurança aprimorada. 

  • Você pode se inscrever em eventos da plataforma e eventos de captura de dados de alteração com os acionadores do Apex. Além disso, os eventos de plataforma suportam a assinatura com fluxos e processos.
  • Eles são compatíveis com criptografia em repouso de dados de evento.
  • O esquema com controle de versões de um evento de plataforma ou de um evento de captura de dados de alteração permite que os assinantes analisem eventos de forma determinística. Cada versão do esquema corresponde a uma ID de esquema exclusivo, que é incluída na mensagem de notificação do evento.
  • A Captura de dados de alteração inclui campos de cabeçalho que contêm informações sobre a alteração.

Recupere notificações passadas usando o barramento de eventos

A partir da versão 37.0 da API, os eventos são publicados no barramento de eventos. Os assinantes recuperam eventos de um canal no barramento de eventos, incluindo eventos passados que são armazenados temporariamente. O barramento de eventos desacopla editores de eventos de assinantes de eventos. 

O Salesforce armazena eventos de plataforma de alto volume e eventos de captura de dados de alteração por 72 horas. Recuperar mensagens de eventos armazenadas do barramento de eventos permite acompanhar os eventos perdidos quando o cliente foi desconectado.

Diagrama do barramento de eventos mostrando como os eventos são publicados no barramento de eventos e como os assinantes recuperam eventos.

A cada mensagem de evento é atribuída uma ID opaca contida no campo ReplayId. O valor do campo ReplayId, preenchido pelo sistema quando o evento é entregue aos assinantes, se refere à posição do evento no fluxo de eventos. Não é garantido que os valores de ID de reprodução sejam contíguos para eventos consecutivos.

Um assinante pode armazenar um valor de ID de reprodução e usá-lo em uma nova assinatura para recuperar eventos dentro da janela de retenção. Por exemplo, um assinante pode recuperar eventos perdidos após uma falha de conexão. Os assinantes não podem calcular novas IDs de reprodução, com base em uma ID de reprodução armazenada, para referenciar outros eventos no fluxo.

Além disso, há outras opções de reprodução listadas nesta tabela. As opções de reprodução estão especificadas no enum ReplayPreset

Opção ReplayPreset Descrição Uso

PERSONALIZADO com ID de reprodução

O assinante recebe todos os eventos armazenados depois do evento definido pelo respectivo valor de replayId e novos eventos.

Fique por dentro dos eventos perdidos depois de uma certa mensagem de evento, por exemplo, após uma falha de conexão. Para assinar com uma ID de reprodução específica, salve a ID de reprodução da mensagem de evento depois da qual você quer recuperar eventos armazenados. Use então esta ID de reprodução quando fizer novamente a assinatura.

Armazene os valores de ID de reprodução como bytes, pois as IDs de reprodução são opacas.

MAIS RECENTES

O assinante recebe novos eventos transmitidos depois que a assinatura é feita.

Recomendamos que os clientes assinem com a opção MAIS RECENTES para receber novas mensagens de evento. Se os clientes precisam receber mensagens de evento com mais antecedência, podem usar qualquer outra opção de reprodução.

MAIS ANTIGOS

O assinante recebe todos os eventos, inclusive os anteriores que estejam dentro da janela de retenção, e novos eventos.

Fique por dentro dos eventos perdidos e recupere todos os eventos armazenados, por exemplo, após uma falha de conexão. Use esta opção com moderação. Assinar com a opção MAIS ANTIGOS quando uma grande quantidade de mensagens de evento está armazenada pode desacelerar o desempenho.

Este diagrama mostra como consumidores de eventos conseguem ler uma transmissão de eventos usando várias opções de reprodução. 

Recursos

Documentação da API Pub/Sub

Trailhead

Platform Events Developer Guide

Change Data Capture Developer Guide

Referência de componente do Lightning

Compartilhe seu feedback do Trailhead usando a Ajuda do Salesforce.

Queremos saber sobre sua experiência com o Trailhead. Agora você pode acessar o novo formulário de feedback, a qualquer momento, no site Ajuda do Salesforce.

Saiba mais Continue compartilhando feedback