Esse texto foi traduzido usando o sistema de tradução automatizado do Salesforce. Faça nossa enquisa para dar feedback sobre esse conteúdo e diga-nos o que você gostaria de ver em seguida.

Este guia vai ajudá-lo a avaliar a abordagem certa para seus requisitos de processamento assíncronos na Salesforce Platform. Ele explica cada abordagem, detalhando os pontos fortes e as limitações de cada uma. A maioria das abordagens está alinhada a um recurso de produto, mas algumas abordagens usam vários recursos em coordenação. O guia inclui casos de uso para destacar quando usar cada abordagem.

O processamento assíncrono oferece dois benefícios importantes para sua arquitetura. Primeiro, ele aumenta a escalabilidade porque os processos assíncronos têm limites de controlador maiores. Segundo, as solicitações assíncronas são executadas em seus próprios threads para que os usuários possam fazer outro trabalho enquanto as tarefas assíncronas são executadas em segundo plano.

Observe que este guia se concentra exclusivamente na escolha de uma tecnologia de processamento assíncrona na Salesforce Platform. Outros recursos para ajudar seu processo de decisão são listados na seção Recursos.

Plataforma Salesforce A Salesforce Lightning Platform é uma plataforma abrangente baseada em IA que une funcionários, agentes de IA autônomos, dados da empresa e aplicativos em um único sistema confiável para aumentar a produtividade e a experiência do cliente. Ele permite a criação de uma "empresa ativa" conectando os aplicativos Customer 360, o Data Cloud e o Slack para automação completa.

Este documento não abrange tecnologias em outros ecossistemas, como MuleSoft, Informatica, Commerce Cloud, Tableau e Marketing Cloud.

  • Antes de usar o processamento assíncrono, certifique-se de que seus casos de uso se encaixam no padrão. Os padrões assíncronos não têm SLA, estão sujeitos a vários mecanismos de controlador, podem ter limites de capacidade definidos com base no licenciamento e podem causar atrasos de processamento devido à natureza finita dos recursos alocados à infraestrutura assíncrona na Salesforce Platform. Considere essas limitações ao usar processamento assíncrono em cenários em que um usuário precisa de uma resposta do sistema antes de continuar o trabalho.
  • O processamento assíncrono com o Salesforce não é uma solução para necessidades de escala ilimitadas. A Salesforce Platform não é dimensionada de modo infinito e os padrões assíncronos estão sujeitos a limitações. O processamento assíncrono usa threads, que contêm as informações contextuais de que uma CPU precisa para executar um fluxo de instruções. Os threads podem ser executados em paralelo. O número de threads disponíveis em qualquer CPU é limitado, portanto, a plataforma tem mecanismos em vigor para usar seus threads disponíveis da maneira mais eficiente possível. O mecanismo de controle de fluxo da plataforma impede que as organizações consumam fitas demais e afetem negativamente outras organizações. O algoritmo de uso justo da plataforma também controla o número de threads que uma organização tem disponíveis para cada tipo de mensagem específico.
  • Tome em conta os eventos que podem causar cargas extremas. Ao projetar processos assíncronos, certifique-se de que eles possam gerenciar de modo previsível picos e lacunas da carga de trabalho. Considere como sua implementação lida com eventos inesperados, como falhas de energia, e projete proteções que mitiguem a perda de dados ou a perda de funcionalidade.

Esta tabela descreve as ferramentas disponíveis para processamento assíncrono com o Salesforce. Consulte esta tabela para revisar as principais características de cada ferramenta durante o processo de tomada de decisão. Consulte Usar casos e pontos de decisão para obter ajuda na escolha das ferramentas certas para sua arquitetura.

Abordagem Descrição Habilidades necessárias Licenças e limites
Apex enfileirável Use para processos que envolvem operações de banco de dados de execução longa ou chamadas de serviço da Web externo. O Apex enfileirável oferece recursos como IDs de trabalho, suporte para tipos não primitivos e encadeamento de trabalho. Código profissional O número de licenças pode aumentar os limites.
Apex de lote Crie processos complexos de longa duração que envolvem milhões de registros dividindo seu conjunto de registros e processando-o em partes gerenciáveis. Código profissional O número de licenças pode aumentar os limites.
Apex agendado Execute o Apex em um horário agendado definido por uma expressão cron. Embora o ato de agendar o Apex por meio da expressão cron seja um processo assíncrono, o código subjacente é executado de forma síncrona quando o trabalho é iniciado. Código profissional O número de licenças pode aumentar os limites.
Chamadas de continuação do Apex Execute chamadas de métodos do Apex em execução em um contexto de transação síncrona. Código profissional Não
Caminho assíncrono (fluxos acionados por registro) Execute uma operação que você deseja executar em seu próprio horário. Evite erros DML mistos que ocorram quando você atualiza um valor em um registro relacionado que não faz parte do registro que acionou um fluxo. Código baixo O número e o tipo de licenças podem aumentar os limites.
Caminho agendado (depois de fluxos de confirmação) Execute em um horário dinamicamente agendado após um evento acionador, como quando um registro é criado, atualizado ou excluído. Código baixo O número e o tipo de licenças podem aumentar os limites.
Fluxos agendados Execute um fluxo em segundo plano em um horário especificado e com uma frequência repetida (diária, semanal ou uma vez) para realizar ações em um lote de registros. Código baixo O número e o tipo de licenças podem aumentar os limites.
Acionadores de evento de plataforma Combine o Salesforce com sistemas externos e se comunique entre componentes assíncronos dentro da Salesforce Platform. Código inferior + Código profissional Uma licença complementar é necessária para casos de uso de evento de plataforma de alto volume
Captura de dados de alteração Capture e processe eventos de alteração de modo assíncrono após a transação do banco de dados ser confirmada. Código profissional Uma licença complementar é necessária para escalar acima da alocação de linha de base.
API em massa Insira, atualize, insira e atualize, consulte ou exclua muitos registros de modo assíncrono e processe os resultados mais tarde. Código profissional Há limites.
Ações do Lightning Permita que as páginas do Lightning interajam com o servidor sem forçar os usuários a atualizar completamente a página. Código baixo Não

Esta tabela contém uma visão geral dos pontos a serem considerados ao decidir qual ferramenta assíncrona usar.

Habilidades necessárias Algumas das ferramentas descritas neste guia exigem código, enquanto outras podem ser configuradas declarativamente. Ao considerar suas opções, pense nos conjuntos de habilidades que os membros da sua equipe têm. Lembre-se de que, mesmo que os desenvolvedores estejam disponíveis para sua implementação inicial (por meio de um parceiro de implementação, por exemplo), talvez você precise modificar suas soluções no futuro. Se a sua equipe de manutenção não tiver desenvolvedores, uma opção com pouco código poderá ser mais adequada.
Tipo de limites de plataforma aplicados Determine o tipo de limite que se aplica à execução. Conforme você projeta suas soluções, pense cuidadosamente em como o volume e a frequência das transações contam para os limites do regulador para a abordagem escolhida a cada dia. Calcule o número de execuções que ocorrerão a cada dia. Certifique-se de que os valores calculados estejam dentro dos limites associados às ferramentas selecionadas.
Latency Determine a rapidez com que os resultados do processamento estarão disponíveis na plataforma. Para algumas abordagens, as alterações serão quase imediatas, enquanto para outras podem ser minutos ou horas.

Ao selecionar uma ferramenta para processamento assíncrono, primeiro avalie os requisitos e os recursos disponíveis da sua organização. Sua meta é selecionar a ferramenta ou ferramentas que minimizam os custos de implementação e manutenção, mas ainda garantem a escalabilidade e minimizam a probabilidade de violações de limite. Essa meta depende das considerações técnicas descritas anteriormente, bem como da composição da sua equipe.

Considere um processo de pedido assíncrono no Salesforce. Quando um pedido é salvo, ele aciona uma mensagem para um sistema de gerenciamento de armazém externo com instruções especiais sobre como empacotar e enviar um item. O usuário que faz o pedido não precisa de uma resposta imediata do sistema de gerenciamento de armazém, portanto, a solicitação pode ser enviada de modo assíncrono. O processamento assíncrono permite que o usuário continue seu trabalho sem esperar uma resposta.

Para esse caso de uso, você pode considerar implementar com Apex. Essa abordagem funcionará apenas se você tiver desenvolvedores do Apex em sua equipe que possam manter sua solução de código profissional. Caso contrário, uma abordagem declarativa faz mais sentido. Lembre-se também de que diferentes conjuntos de limites se aplicam a diferentes ferramentas.

Esta tabela lista casos de uso comuns na coluna mais à esquerda, seguidos por uma descrição. A coluna Primeira escolha fornece a abordagem mais típica usada para satisfazer esse caso de uso, junto com a justificação para a abordagem Primeira escolha. Use isso como ponto de partida em sua análise. A abordagem Primeira opção pode ter limitações que não funcionarão para seu caso de uso.

Caso de uso Descrição Abordagem de primeira escolha Racionalidade
Processamento em lote de alto desempenho Qualquer automação que precise processar milhares ou milhões de registros de maneira eficiente Lote Apex O Apex em lote fornece APIs avançadas para interface com a plataforma e velocidade bruta.
Trabalho de limpeza de dados Um trabalho que é executado de rotina ou sob demanda que limpa dados. Exemplos incluem desduplicação, verificação de endereço ou consolidação de dados. Lote Apex O Apex em lote fornece APIs avançadas para interface com a plataforma e velocidade bruta.
Trabalho de totalização noturna Trabalho que calcula os dados de totalização no fim de um dia útil. Lote Apex O Apex em lote fornece APIs avançadas para interface com a plataforma e velocidade bruta.
Lógica acionada por registro Execute a lógica em resposta a uma atualização de registro. Varia Consulte nosso guia de decisão de companheiro, Automação de eventos acionados por registro. Inclui uma árvore de decisão para casos de uso assíncronos, incluindo Apex enfileirável, Apex em lote, Apex agendado, Fluxo agendado, Fluxos de caminho assíncrono e Captura de dados de alteração.
Atualizações em cascata por meio de um gráfico de objeto Permite que a ação de salvar de um usuário seja concluída rapidamente, adiando atualizações em cascata a outros objetos para execução assíncrona. Apex enfileirável O Apex enfileirável tem recursos poderosos de encadeamento que permitem que a lógica divida uma cadeia de atualizações em uma série de transações assíncronas.
Processamento agendado específico do registro Automação em uma data dinâmica futura específica do registro (por exemplo, três dias antes de uma data de fechamento). Fluxo com um caminho agendado Os caminhos agendados fornecem um poder exclusivo ao Fluxo, pois a plataforma gerencia automaticamente o agendamento, o cancelamento e o reagendamento desses caminhos se os dados do registro mudarem.
Invocando vários serviços externos lentos em paralelo Durante uma execução síncrona, vários serviços externos são chamados em paralelo para otimizar o tempo de execução geral. Chamadas de continuação do Apex Permitir que várias chamadas de execução lenta sejam executadas em paralelo minimiza o tempo geral para concluir o trabalho.
Migração de dados de registros de um sistema externo Mova grandes quantidades de registros para a Salesforce Platform de um sistema externo. Um processo único ou agendado regularmente. Bulk API Essa é a abordagem mais eficiente e amigável para a migração de dados.
Executar lógica adicional em um sistema externo Padrão de foco e esquecimento de notificar um sistema externo de um evento na plataforma, então permitindo que esse sistema processe o evento de modo assíncrono. Eventos de plataforma ou captura de dados de alteração Um modelo pub-sub funciona melhor aqui e permite que o sistema externo processe o evento quando ele estiver pronto. Consulte Arquitetura conduzida por evento para obter mais detalhes sobre esse padrão.

A tabela Casos de uso é um guia para a abordagem mais adequada para cada caso de uso. No entanto, você precisará validar o quão bem a tecnologia Primeira escolha atende às necessidades específicas do seu caso de uso. Em particular, determine se a abordagem escolhida pode cumprir os limites do controlador para sua organização.

Depois de identificar uma abordagem candidata para seu caso de uso, o Guia de Fundamentos de Processamento Assíncrono pode ajudar a verificar totalmente a solução.

Estes recursos adicionais podem ajudar no processo de decisão: