A escolha entre uma integração em tempo real ou por lotes não é uma decisão puramente técnica. Ela determina o que acontece quando um pedido muda de estado, o estoque acaba, uma fatura é corrigida ou um dado de cliente chega tarde a outro sistema. O erro habitual é supor que o tempo real é sempre melhor. Na prática, ele adiciona dependências, pontos de falha e exigências operacionais que só compensam quando o custo de esperar é maior do que essa complexidade.
A alternativa também não é executar uma exportação noturna sem planejamento. Um processo por lotes pode ser seguro, eficiente e suficiente, mas precisa de janelas de atualização explícitas, controles de integridade e mecanismos de recuperação. A decisão correta parte do caso de uso: qual dado é movimentado, quem atua sobre ele, quanto dano uma defasagem causa e o que acontece se a mensagem chegar duas vezes ou não chegar.
A pergunta decisiva: o que acontece se o dado chega tarde, duplicado ou não chega

Antes de discutir APIs, webhooks, filas ou frequência de execução, descreva o efeito de uma falha em termos de negócio e operação. Um dado não é crítico por pertencer a um CRM, ERP ou ecommerce; ele é crítico pela decisão ou execução que viabiliza.
- Chega tarde: determine a defasagem máxima aceitável. Pode ser de segundos para bloquear uma transação, de minutos para alertar uma equipe ou de horas para consolidar relatórios.
- Chega duplicado: avalie se o destinatário poderia criar dois pedidos, repetir uma cobrança, enviar comunicações duplicadas ou apenas atualizar o mesmo registro.
- Não chega: identifique se existe um caminho manual, uma consulta alternativa ou uma reconciliação posterior que evite perda de negócio.
- Chega com dados desatualizados: defina qual sistema tem autoridade sobre cada campo e como os conflitos entre atualizações são resolvidos.
Convém classificar cada fluxo conforme sua finalidade. Uma integração de consulta exibe informações para orientar uma pessoa; uma de decisão alimenta regras, segmentações ou prioridades; uma de execução cria uma ação irreversível, como reservar estoque ou emitir uma fatura; e uma de comunicação dispara mensagens para clientes ou equipes. As de execução normalmente exigem mais imediatismo e proteção contra duplicidades. As de consulta ou análise geralmente admitem processamento diferido.
O tempo real se justifica por uma consequência concreta do atraso, não pela expectativa de que todos os sistemas reflitam sempre a mesma informação.
Quando o tempo real se justifica e o que ele exige
O padrão em tempo real é adequado quando um sistema precisa reagir imediatamente para que outro possa concluir uma operação correta. Por exemplo, uma validação de disponibilidade antes de confirmar um pedido, a mudança de estado que permite um envio ou um alerta operacional que evita uma ocorrência mais grave.
Há uma diferença relevante entre “tempo real” e “rápido”. Uma chamada síncrona pode responder durante a interação do usuário, mas também bloqueia o processo se o sistema remoto não estiver disponível. Um evento assíncrono emitido quando ocorre uma mudança desacopla o emissor, embora o consumidor possa processá-lo alguns segundos depois. Ambos os padrões podem atender a uma necessidade de baixa latência, mas apresentam riscos diferentes.
Sinais de que o tempo real agrega valor
- Uma espera provoca uma venda perdida, uma operação inválida ou uma exposição operacional imediata.
- O dado participa de uma regra de autorização, reserva, atribuição ou prevenção a fraudes.
- Há um responsável claro para tratar incidentes fora do horário comercial caso o fluxo seja crítico.
- Os sistemas conseguem suportar tentativas, limites de consumo e picos de demanda sem bloquear processos essenciais.
- O custo de manter observabilidade e recuperação é menor do que o custo de uma defasagem.
Adotar essa abordagem implica requisitos inegociáveis: tempos limite, tentativas com intervalos progressivos, uma fila ou mecanismo equivalente para falhas transitórias, monitoramento de erros e alertas acionáveis. Também exige definir o que a aplicação faz quando a dependência não responde. A resposta não pode ser apenas exibir um erro técnico: ela pode reter a operação, permiti-la sob revisão, salvar uma solicitação pendente ou aplicar uma regra temporária.
O principal risco é construir uma cadeia síncrona extensa: o ecommerce consulta o inventário, o inventário consulta o ERP e o ERP depende de outro serviço. Cada elo aumenta a latência e a probabilidade de indisponibilidade. Para reduzi-lo, limite as dependências online às informações indispensáveis e processe o restante de forma assíncrona.
Quando os processos por lotes são mais seguros e eficientes
Um processo por lotes reúne mudanças e as transfere em uma cadência definida: a cada hora, várias vezes ao dia ou no encerramento de uma janela operacional. É uma opção adequada quando o destinatário não precisa agir imediatamente e pode trabalhar com uma visão dos dados que tenha algum atraso.
Esse padrão costuma se adequar bem à sincronização de catálogos, relatórios, consolidação financeira, atualização de segmentos, importações históricas ou troca de grandes volumes. Ele permite controlar a carga sobre sistemas com capacidade limitada, executar validações antes de publicar dados e concentrar a supervisão em janelas conhecidas.
Sinais de que um lote é suficiente
- O usuário ou processo destinatário pode operar com dados de várias horas de antiguidade sem consequências materiais.
- O volume é alto e uma transmissão individual por alteração geraria uma carga desnecessária.
- As atualizações são consumidas para análise, planejamento ou tarefas internas não urgentes.
- É necessário validar, enriquecer ou agrupar informações antes de disponibilizá-las.
- A equipe dispõe de uma janela clara para revisar exceções e reprocessar.
O risco típico não é a latência, mas a falsa sensação de controle. Um lote mal projetado pode sobrescrever mudanças recentes, omitir registros devido a uma marca temporal incorreta ou falhar no meio da execução sem deixar claro qual parte foi aplicada. Por isso, evite basear a extração apenas em “modificados desde a última hora” se relógios, fusos horários ou tentativas não estiverem controlados. Use cursores persistentes, intervalos sobrepostos com deduplicação ou registros de alterações quando possível.
Além disso, cada execução deve gerar um resultado verificável: quantos registros foram lidos, quantos foram criados, atualizados, rejeitados ou ficaram pendentes. Se essas contagens não puderem ser comparadas com a origem, a reconciliação será lenta quando surgir uma discrepância.
Modelo de decisão com cinco variáveis práticas
Para cada fluxo, classifique estas variáveis como baixa, média ou alta. A combinação ajuda a evitar decisões guiadas por preferências tecnológicas.
- Tolerância à defasagem: quanto tempo pode passar antes de o dado perder utilidade? Se for de segundos ou minutos e afetar uma execução, favorece um evento imediato ou uma consulta online.
- Volume e variabilidade: quantas alterações ocorrem e há picos? Um fluxo massivo e previsível geralmente se beneficia de lotes; um fluxo com poucos eventos críticos pode ser processado imediatamente.
- Dependência operacional: o sistema emissor precisa esperar pelo destinatário para continuar? Quanto maior a dependência, maior a necessidade de desacoplar por meio de eventos e processamento assíncrono.
- Reversibilidade: o resultado pode ser corrigido sem impacto relevante? Se uma ação for irreversível ou cara de desfazer, priorize validação, idempotência e rastreabilidade, mesmo que a latência aumente.
- Custo da falha: inclua perda de receita, descumprimento de processos, trabalho manual e confiança do cliente. Um custo alto exige controles melhores, não necessariamente uma chamada síncrona.
Uma regra útil é a seguinte: se a urgência for alta, mas a dependência também, use um evento imediato e processe de forma assíncrona. Assim, a mudança é registrada sem obrigar o sistema de origem a depender da disponibilidade instantânea do destino. Se a urgência for baixa e o volume alto, um lote com reconciliação costuma ser a opção mais simples e robusta.
Padrões híbridos para equilibrar rapidez e controle
Muitas integrações maduras combinam as duas abordagens. O objetivo não é escolher um único rótulo, mas atribuir o padrão apropriado a cada parte do fluxo.
- Evento imediato e processamento diferido: quando um pedido é criado, um evento é publicado; os sistemas secundários o consomem de uma fila sem bloquear a confirmação.
- Consulta imediata e réplica por lotes: a aplicação consulta a fonte autorizada para uma decisão crítica, enquanto mantém uma cópia local atualizada para pesquisas e análises.
- Lote frequente mais reconciliação: as mudanças são sincronizadas em determinado intervalo e é executada uma verificação diária para detectar ausências, diferenças de estado ou erros parciais.
- Atualização urgente por exceção: o catálogo é enviado por lotes, mas uma alteração relevante de disponibilidade gera uma atualização prioritária.
Em estoque, por exemplo, nem todos os dados exigem a mesma cadência. A reserva associada à compra pode exigir uma confirmação imediata; a atualização de descrições ou atributos de produto pode esperar. No faturamento, a emissão pode exigir regras e validações rigorosas, enquanto a exportação para análise financeira pode ser executada em uma janela programada. Nos dados de clientes, um cancelamento de comunicações deve se propagar com prioridade se evitar envios indesejados, mas a consolidação de campos de perfil pode ser adiada.
Controles comuns e recuperação diante de incidentes
Independentemente do padrão, a confiabilidade depende de controles explícitos. Cada entidade deve ter um identificador estável e cada operação, um identificador de mensagem ou solicitação. O destinatário precisa aplicar idempotência: processar duas vezes a mesma instrução deve produzir o mesmo resultado que processá-la uma única vez.
- Defina o sistema de referência para cada entidade e campo, a fim de evitar conflitos silenciosos.
- Mantenha estados de processamento: recebido, validado, aplicado, rejeitado e pendente de nova tentativa.
- Registre a origem, o destino, a data, a versão do esquema e o motivo do erro de cada exceção.
- Separe erros transitórios, como uma indisponibilidade temporária, de erros permanentes, como um dado inválido.
- Estabeleça uma fila de mensagens com falha ou um mecanismo de revisão para não perder itens após esgotar as tentativas.
- Projete alterações de esquema compatíveis durante uma transição e avise antes de remover campos ou alterar significados.
Os alertas devem apontar para uma ação concreta: acúmulo de pendências, tempo máximo sem processamento, taxa de rejeições ou diferença entre as contagens de origem e destino. Um alerta para cada erro individual gera ruído; um alerta por deterioração contínua permite priorizar.
Checklist para acordar a decisão antes de construir

- Descreva a ação de negócio que depende do dado e a defasagem máxima aceitável.
- Documente o que acontece em caso de atraso, duplicidade, ausência e conflito de versões.
- Identifique o sistema de referência e os identificadores compartilhados.
- Estime o volume médio, os picos e os limites da origem e do destino.
- Decida se o emissor pode continuar quando o destinatário estiver indisponível.
- Defina tentativas, idempotência, tratamento de exceções e reconciliação.
- Designe responsáveis pelo monitoramento e um procedimento de recuperação.
- Teste indisponibilidades, reenvios, execução parcial e alterações de esquema antes de ativar o fluxo.
A decisão mais sólida não busca sincronização instantânea em todos os sistemas. Ela busca fazer com que cada dado chegue quando precisa chegar, com um nível de controle proporcional ao seu impacto e com uma recuperação previsível quando a operação real se afastar do cenário ideal.
