Situação (antes da nossa atuação)
A Icatu contava com uma API de negociação que suportava o processo de consulta de propostas e outras interações importantes para o fluxo de negociação. Com o aumento iminente de demanda, o cliente identificou a necessidade de otimizar a API, visto que a mesma apresentava dificuldades de escalabilidade e performance. A API, atualmente em um ambiente on-premise, não foi projetada para suportar o nível de crescimento previsto, sendo necessário um trabalho robusto de reestruturação.
Além disso, a comunicação com o banco de dados SQL revelou ser uma das principais barreiras de desempenho. A API utiliza queries complexas e possui um endpoint crítico para a busca de detalhamento de propostas, o qual exige respostas rápidas e eficientes. Porém, a falta de escalabilidade e a comunicação ineficiente com o banco resultavam em latências que prejudicavam a experiência do cliente e limitavam a capacidade da aplicação.
Por fim, a aplicação estava limitada na aplicação de cache devido ao alto dinamismo dos filtros e à complexidade dos parâmetros utilizados nas consultas. Essa dificuldade ampliava os desafios de performance, já que o volume de dados consultados frequentemente não contava com uma camada de otimização eficiente.
Implicações
- Baixa escalabilidade: A API atual não suporta o aumento de demanda previsto pelo cliente, resultando em limitações operacionais.
- Performance limitada em consultas: O endpoint principal, utilizado para detalhamento de propostas, apresenta alta latência, afetando a agilidade no processo de negociação.
- Queries complexas e pouco otimizadas: As queries SQL utilizadas não estão eficientes, aumentando o tempo de processamento e consumo de recursos.
- Dificuldade em aplicar cache: A alta variabilidade de filtros e parâmetros dinâmicos dificulta a implementação de cache, resultando em consultas recorrentes ao banco para dados frequentemente acessados.
O que fizemos
Para atender às necessidades da Icatu, a EximiaCo implementou uma série de otimizações e melhorias estruturais na API de negociação, com foco em escalabilidade e eficiência de comunicação com o banco de dados.
- Reestruturação do endpoint principal: Iniciamos pela análise detalhada do endpoint de busca de propostas, revisando queries SQL e implementando melhorias nas instruções, índices e métodos de consulta. Buscamos reduzir ao máximo o número de chamadas desnecessárias e a complexidade dos filtros.
- Implementação de estratégias de cache inteligente: Trabalhamos na implementação de um sistema de cache adaptativo, que analisa padrões de consulta e cacheia resultados de alta frequência sempre que possível. Adotamos uma abordagem dinâmica que identifica combinações de filtros e os armazena temporariamente, melhorando o tempo de resposta em consultas repetitivas.
- Escalabilidade e migração: Projetamos uma estrutura escalável para a API, prevendo a futura migração para um ambiente cloud, ou a adoção de práticas de load balancing, possibilitando o atendimento à demanda crescente.
- Otimização de performance no banco de dados: A EximiaCo realizou um refinamento de queries SQL, aplicando índices e revendo a estrutura das tabelas conforme necessário. Isso resultou em uma comunicação mais ágil entre a API e o banco, mitigando gargalos de processamento e resposta.
Entregáveis
- Reestruturação do endpoint principal, com redução de tempo de resposta em consultas críticas.
- Implementação de cache adaptativo e inteligente, com variação dinâmica para filtros específicos.
- Projeto de escalabilidade com planejamento para futura migração cloud ou balanceamento de carga.
- Otimização completa de queries SQL e ajustes na estrutura do banco de dados para maior agilidade e eficiência.
Feedbacks
Aguardando feedback após a implantação dos ajustes para validar o impacto das melhorias na performance e na escalabilidade da API. A expectativa é que a Icatu observe uma melhora significativa no tempo de resposta, especialmente no endpoint de detalhamento de propostas, e que a API passe a comportar o aumento de demanda projetado com estabilidade e eficiência.