Cache de consulta: como reduzir chamada de API sem entregar dado desatualizado
O custo escondido de consultar toda vez
Toda chamada à API de uma consolidadora tem um custo — de tempo de resposta, de limite de requisição disponível, e eventualmente até financeiro, dependendo do modelo de cobrança. Quando uma informação que muda pouco é consultada do zero toda vez que alguém abre uma tela, esse custo se repete sem necessidade real.
O que cache resolve
Cache é guardar temporariamente o resultado de uma consulta, pra que a próxima solicitação da mesma informação, dentro de um período curto, seja respondida com o dado já guardado, sem precisar chamar a API de novo. Isso reduz o número de chamadas reais feitas à consolidadora, sem que quem usa o sistema perceba diferença na velocidade de resposta — na verdade, percebe resposta mais rápida.
O equilíbrio entre economia e atualidade
Um cache guardado por tempo demais entrega dado desatualizado, como um status de venda que já mudou mas o sistema continua mostrando o valor antigo guardado. Um cache guardado por tempo de menos praticamente não economiza nada, porque a informação é buscada de novo quase toda vez mesmo assim. O tempo certo de cache depende de quão rápido aquela informação específica costuma mudar na prática.
Nem toda informação deveria ser guardada em cache
Dado que muda com frequência alta, como disponibilidade de vaga em tempo real, é mau candidato a cache — o risco de mostrar informação desatualizada supera o ganho de economia de chamada. Dado mais estável, como cadastro de destino ou tabela de tarifa que só muda esporadicamente, é um bom candidato.
Invalidar o cache no momento certo
Além de expirar por tempo, um cache bem projetado também deveria ser invalidado imediatamente quando o sistema sabe, por outro caminho, que aquela informação específica mudou — por exemplo, logo após uma sincronização que trouxe atualização daquele mesmo dado, em vez de esperar o tempo padrão de expiração passar.
O ganho principal não é só economia
Além de reduzir chamada à API, um cache bem implementado também reduz a chance de esbarrar em limite de requisição da consolidadora — o que, em operações de maior volume, pode ser o fator que decide se a integração continua funcionando de forma estável ou não.
Continue lendo
Versionamento de contrato de API: como mudar sem quebrar quem já está integrado
Criptografia de dado sensível em trânsito: protegendo a informação entre o clique e o banco de dados