Como utilizar o cache em integrações
Cache é uma cópia temporária dos dados oriundos de uma integração a outro sistema, armazenada em uma camada de acesso rápida do Zeev.
Visão geral
Cache é uma cópia temporária dos dados oriundos de uma integração a outro sistema, armazenada em uma camada de acesso rápida do Zeev.
Quando utilizado o recurso de cache, o Zeev, ao invés de conectar no sistema integrado a cada solicitação, consulta sua cópia dos dados rápida.
Cache é largamente utilizado em sistemas de missão crítica por todo mundo, e é uma das tecnologias fundamentais para sistemas de alta performance. Praticamente todos os sistemas de alta performance utilizam alguma forma de cache.
O cache tem um tempo de vida pré-definido, podendo variar de alguns segundos até dias. Quando o prazo termina, o cache é excluído. Na próxima solicitação, o cache é remontado novamente, com dados atualizados, que irão persistir por novo prazo definido.
Quando usar cache
Cache deve ser utilizado, sempre que for possível, em integrações que conectem em APIs para retornar dados. Por exemplo, no caso de de campos do formulário que possuem múltiplas opções para seleção.
Imagine um aplicativo de processo que possui um formulário com um campo do tipo caixa de seleção que liste as cidades de um país. Imagine que, para trazer essa lista de cidades, é criada uma integração com um sistema externo (através de APIs) ou mesmo com uma API do próprio Zeev. Ao utilizar cache, ao invés de conectar nessa API cada vez que o campo de cidades aparecer, Zeev irá consultar sua cópia local rápida.
Quais os benefícios de usar cache
A utilização de cache possui os seguintes benefícios:
Cache acelera enormemente a performance do sistema e a velocidade de abertura das telas. Se você possui formulários com muitos campos e integrações, verifique se todas as integrações estão usando cache;
Cache evita erros 429;
O erro 429 é um código de status de resposta HTTP que indica que você excedeu o limite de solicitações que podem ser enviadas num determinado período de tempo. Uma resposta 429, de “Too Many Requests” ou “muitas solicitações”, não é tecnicamente um erro, é a resposta de um servidor. Ela indica que você ultrapassou limites pré-contratados de solicitações por segundo, por minuto, por hora, por dia ou mesmo por mês.
A resposta 429 é uma forma de proteger o sistema externo de tentativas muito frequentes de acesso que poderiam prejudicar a performance do sistema como um todo, ou mesmo proteger de potenciais ataques hackers.
O próprio Zeev possui limites de solicitações por segundo, e pode lançar erros 429 em suas APIs.
Ao utilizar cache, contornamos esse problema. Zeev, na primeira consulta à API, irá criar sua cópia local dos dados. As consultas subsequentes irão, então, consultar o cache, e não a API.
Comportamento do cache conforme o tipo de campo usado
As integrações podem ser utilizadas em determinados campos do formulário. Cada campo possui um comportamento relacionado ao cache. Alguns armazenam todo o retorno da API possibilitando a consulta desse retorno na cópia armazenada localmente, enquanto outros campos armazenam apenas a pesquisa realizada pelo usuário, ou seja, se você buscar por um termo que retorna 3 itens da API, o cache armazenará esses 3 itens. Para cada novo termo buscado será feita uma nova consulta na API.
Pode haver diferença na performance do retorno conforme o campo utilizado.
Caixa de seleção, Lista de seleção e Lista de seleção única
Faz a consulta uma única vez para a listagem de todos os itens, armazenando os resultados em cache.
Sugestão e Pesquisar e preencher
Armazena o cache do termo utilizado na busca. Para cada novo termo será realizada uma nova consulta.
Como configurar cache
A primeira questão a ser definida, ao definir o cache de uma integração, é entender qual a periodicidade que os dados da API são alterados. Pois, enquanto o cache existir, Zeev irá ver a cópia dos dados, e não os dados "online".
Imagine uma API que retorne a lista de cidades de um país. Essa lista com certeza muda muito pouco com o tempo ("nunca", ou "raramente"), e pode ter um tempo de cache grande, em dias.
Agora imagine outra API que retorne a lista de tickets abertos no dia no seu sistema de service desk. Tickets novos são abertos a qualquer momento ("frequentemente"). O uso de cache fica inviável? Não.
Imagine que você tem 6 acessos por minutos nas telas desse aplicativo. Se você colocar um cache pequeno, de 5 minutos, você está transformando 30 acessos à API em 1 acesso à API. O ganho de performance é tremendo. E você, provavelmente, está evitando erros 429.
Em resumo, em 99,99% das vezes, você DEVE usar cache. Nos cenários onde a API tem controle de acessos por 429, o cache virá obrigatório.
Veja, na tabela abaixo, uma proposta para o tempo de cache:
Nunca
Dias
Raramente
Dia
De vez em quando
Dia ou horas
Comumente
Horas
Frequentemente
Minutos
Atualizado