Executando verificação de segurança...
1

Dúvidas sobre arquitetura de uma aplicação web

Pessoal, estou encarregado de trazer algumas mudanças estruturais das tecnologias usadas na empresa que trabalho para futuros projetos e estou com algumas dúvidas em relação a arquitetura.

Basicamente, a empresa é cheia de engenheiros de telecom e usamos o Django para o backend. A ideia da utilização do Django é que toda a parte de "cálculos" complexos são feitos com Python (e isso não vai mudar). Porém, como estamos utilizando Next.JS, acho que, pensando em escalabilidade, é mais fácil achar um profissional que é especializado em React e Node do que React e Django. Então, penso em propor uma mudança para Nest.JS, até porque as aplicações não são tão grandes, com muitos usuários (são acessadas através de redes privadas).

Porém, pensando em arquitetura, se os cálculos são feitos em Python, o backend deveria ser em Python também? Atualmente, o usuário no front envia os inputs e clica em "Calculate", onde as informações são passadas pro backend, que usa uma função do módulo de cálculos pra pegar o resultado e devolve via API. Como seria a desacoplação desse módulo de cálculos? O backend precisa ser o responsável por lidar com as questões de cálculos?

Queria mais um overview geral sobre isso tudo!

1

Como é uma aplicação interna, imagino que tenha poucos acessos simultâneos e não tenha uma interface muito complexa, então precisa mesmo de tanto Javascript? Por quê a necessidade de usar Next.js?

Usar o Next sem usar as funcionalidades de backend é praticamente um React com a função de rotas, acaba matando a necessidade de usar ele.

Tem que se considerar os traumas de sair do Django para os usuários atuais do sistema e o retrabalho de reconstruir funcionalidades atuais do Django para o Nest, depende do quanto das funcionalidades do Django são usadas atualmente.

Se os cálculos foram feitos em Python, tem que ter pelo menos uma API em Python que devolve os resultados para o front ou para um backend em JS.

1

Acredito que o uso do Next.JS seja importante por razões de escalabilidade. São projetos que duram anos e podem mudar o escopo a cada renovação.

O ponto central da minha questão é em relação a arquitetura de uma aplicação completa que depende de módulos complexos de cálculos.

Um exemplo mais crível, talvez, seria de uma aplicação que precisa realizar milhões de cálculos em uma velocidade muito alta e, por isso, é optado por utilizar o C++ pra lidar com isso. Porém, a empresa quer utilizar o Typescript pro back e pro front, pois é o que a maioria dos devs da empresa sabem mexer com maestria. Então, a partir desse cenário, como deveria ser a arquitetura desse software? O que os engenheiros que trabalham nos cálculos pelo C++ precisam fazer pra se comunicar com os devs do backend? O que os devs precisam fazer pra se comunicar com esses engenheiros do C++