Entender o Change Data Capture
Objetivos de aprendizagem
Após concluir esta unidade, você estará apto a:
- Descrever o que são eventos de alteração.
- Explicar os benefícios da tecnologia de streaming.
- Explicar quando usar os eventos de alteração.
Antes de começar esse módulo
Sabemos que você está ansioso para começar! Mas antes de começar a trabalhar neste módulo, você deve estar familiarizado com alguns conceitos para poder concluí-lo.
Como uma das maneiras de se inscrever no Change Data Capture é com os acionadores do Apex, você precisa entender um pouco sobre classes e acionadores do Apex e testes do Apex.
- Se você ainda não usou o Apex antes e é novo na programação orientada a objetos, confira a trilha Criar habilidades de codificação do Apex. Esta trilha estabelece uma série de módulos que ajudam você a construir seu conhecimento sobre o Apex passo a passo, desde o início.
- Se você estiver familiarizado com a programação orientada a objetos e quer aprender mais sobre o Apex, confira estes módulos: Banco de dados e noções básicas do Apex, Testes do Apex e Acionadores do Apex.
Além disso, uma familiaridade com eventos de plataforma ajuda você a entender eventos do Change Data Capture, que são um tipo especial de eventos de plataforma. Embora não seja necessário para concluir este módulo, recomendamos que você faça também o módulo Noções básicas dos eventos da plataforma.
O que é o Change Data Capture?
Change Data Capture é um produto de streaming da Lightning Platform que permite integrar os dados do Salesforce com sistemas externos de maneira eficiente. Com o Change Data Capture, você pode receber alterações de registros do Salesforce em tempo real e sincronizar os registros correspondentes em um armazenamento de dados externo. O Change Data Capture publica eventos de alterações em registros do Salesforce referentes a operações de criação, atualização, exclusão e cancelamento de exclusão.
Use o Change Data Capture para atualizar dados em um sistema externo em vez de fazer exportações periódicas ou sondagens de API. O recebimento de alterações com as notificações de eventos do Change Data Capture permite que seus dados externos sejam atualizados em tempo real e se mantenham recentes.
Pense no Change Data Capture como parte do processo de replicação de dados em tempo real para a nuvem. A replicação de dados inclui os estágios a seguir.
- Cópia inicial (dia 0) de todo o conjunto de dados para o sistema externo
- Sincronização contínua de dados novos e atualizados para o sistema externo
- Reconciliação de dados duplicados entre os dois sistemas
O Change Data Capture é a parte de sincronização contínua da replicação (etapa 2). Melhor dizendo, ele publica os deltas dos dados do Salesforce, seja para registros novos ou para registros alterados. O Change Data Capture requer um aplicativo de integração para receber eventos e fazer atualizações no sistema externo.
O que são eventos de streaming e por que utilizá-los?
Eventos de streaming são mensagens de notificação instantâneas que um sistema (o publisher) envia para outro (o assinante). Usando o modelo de publicação/assinatura, o Change Data Capture envia notificações para assinantes sempre que há uma alteração de dados no Salesforce. As mensagens de notificação são enviadas para o barramento de eventos, que pode ser assinado pelos clientes usando a API Pub/Sub ou acionadores do Apex. Sistemas voltados para eventos simplificam a comunicação entre sistemas empresariais distribuídos, aumentam a escalabilidade e entregam dados em tempo real. Usar uma arquitetura orientada a eventos para conectar sistemas é mais eficiente do que pesquisar dados por meio de APIs, como a API SOAP ou a API REST. Ao usar APIs para pesquisar atualizações de dados no servidor, o estado atual dos dados depende da frequência da pesquisa. Além disso, os clientes podem fazer chamadas excessivamente e tornar os servidores mais lentos.
Quando usar o Change Data Capture
Digamos que você tem um sistema de planejamento de recursos empresariais (ERP) que armazena suas informações comerciais e parte de seus dados do Salesforce é duplicado nele. Para ter certeza de que seus dados do ERP estão atualizados, você pode usar eventos de alteração para sincronizar alterações dos registros do Salesforce em seu sistema de ERP. Por exemplo, se houver informações sobre pedidos tanto no sistema de ERP quanto no Salesforce, você poderá fazer streaming de eventos de alteração de pedidos do Salesforce para um aplicativo de integração. Em seguida, o aplicativo sincronizará as alterações no sistema de ERP.
Use os eventos de alteração para:
- Receber notificações sobre alterações em registros do Salesforce, incluindo operações de criação, atualização, exclusão e cancelamento de exclusão.
- Capturar alterações na maioria dos campos para todos os registros.
- Obter informações sobre a alteração no cabeçalho do evento, como a origem da alteração, para que você possa ignorar alterações geradas pelo cliente.
- Fazer atualizações de dados usando limites de transação quando esta tiver mais de uma operação.
- Usar um esquema de eventos com controle de versão.
- Assinar alterações em massa de forma escalável.
- Obter acesso a eventos retidos por três dias no máximo.
Abordaremos os detalhes das mensagens de evento de alteração, incluindo campos de cabeçalho, na próxima unidade.
Um aplicativo de integração de exemplo
Robert Bullard é um desenvolvedor de software na Get Cloudy Consulting, uma empresa de consultoria de alta tecnologia especializada em implementações de CRM. Robert está desenvolvendo um aplicativo de sincronização de RH para um cliente. O aplicativo sincroniza alterações em dados de registros do Salesforce com um sistema de RH que está fora do Salesforce. O cliente de consultoria do Robert cria e modifica alguns dados de recursos humanos no Salesforce como registros de objetos personalizados Employee__c. O cliente deseja que os dados de funcionários no sistema de RH sejam sincronizados com o Salesforce.
O aplicativo de integração do Robert tem estes pré-requisitos.
- Replicar cada registro de objeto personalizado Funcionário (Employee__c) novo ou alterado no armazenamento de dados de RH.
- Replicar todos os registros de funcionários com seus campos.
- Usar replicação baseada em transação. Se várias atualizações estão em uma mesma transação, o aplicativo de integração envia essas atualizações como parte da mesma transação.
- Retomar a replicação de notificações de eventos anteriores que estejam armazenados há menos de três dias em caso de falha no processo de replicação.
Sincronização de dados com o Change Data Capture
Após analisar as várias opções de streaming de eventos no Salesforce, Robert conclui que o Change Data Capture é a melhor opção. Quando ele assina o canal para o objeto personalizado Funcionário pelo aplicativo, este recebe notificações para cada alteração com todos os campos modificados. O aplicativo inspeciona os campos de cabeçalho na mensagem de notificação para entender se a alteração pode ser confirmada imediatamente ou se ela deve ser combinada com outras alterações. Como o Salesforce armazena eventos de alteração até três dias no máximo, o aplicativo pode recuperar notificações perdidas.
Recursos
-
Desenvolvedores do Salesforce: Change Data Capture Developer Guide
-
Desenvolvedores do Salesforce: Guia do desenvolvedor da API Pub/Sub
-
Trailhead: Noções básicas dos eventos da plataforma