Date: 2019-09-19
Proposed
Atualmente o time de growth deseja re-implementar a feature de randomização para pedidos nas páginas de categoria e orçamento, porém, devido a limitações atuais presentes no sistema scorpion, implementar tal feature utilizando o Active Record, faz com que o MySQL sobrecarregue e a aplicação acabe caindo. Em tentantivas anteriores desta implementação foi proposta uma solução, em que uma querie seria feita pelo Redis, e nele seriam randomizados os pedidos, retornando assim, os dados já tratados, para o scorpion.
Criaremos um novo sistema que irá fazer as queries, assumindo então a resposabilidade de leitura, escrita(persistência), lógica de busca, rodar as rotinas de busca, parsers e modifiers quanto as queries e documentos nele existentes. Optamos pelo uso de um banco NoSQL MongoDB, devido à flexibilidade de escrita e criação de documents, junto da linguagem Python, uma vez que a integração entre ambas as ferramentas ocorre de forma fácil e devido e rapidez no desenvolvimento do sistema.
O sistema receberá parâmentros de busca, e com esses fará a queries no banco de dados, manipulando as informações para montar um documento, que se assemelha muito à um JSON:
category_service:
{
slug: 'reformas-e-reparos/pintor',
best_reviews: '{}'
}
E escrever dados já manipulados para o Scorpion.
O sistema tem por intenção melhorar alguns problemas de performance existentes no sistema scorpion, porém, implicando na existência de mais um sistema dentre os já existentes, e adicionando uma curva de aprendizado nova devido ao uso de uma linguagem, junto com novas integrações entre sistemas caso necessário.