Estrutura geral do projeto

O Minerva System é uma aplicação pensada com finalidade de estudo, mas que não deixa de ser um sistema real e com um público alvo. Sendo assim, trata-se de um sistema gerencial, sem finalidade comercial.

O projeto envolve um licenciamento de Software Livre, e busca implementar uma estrutura de microsserviços. Em outras palavras, o sistema opera através da modificação de uma única base de dados, mas possui módulos separados para modificação de partes específicas.

Minerva também utiliza uma dicotomia front-end/back-end, de forma que a aplicação constitui-se de uma interface gráfica web, acessível via navegador, e uma intraestrutura constituída de um ponto de entrada que se comunica com os serviços específicos que a interface gráfica requisitar.

Segmentos

Como supracitado, Minerva constitui-se de microsserviços, especialmente em seu back-end. Para tanto, deve-se pensar em três grandes segmentos:

  • Front-End (aplicação web envolvendo interface gráfica);
  • Back-End (aplicação com um gateway REST, constituída de microsserviços gRPC);
  • Banco de Dados (relacional para gerenciamento de dados, não-relacional para gerenciamento de entidades temporárias, e sistemas de caching e mensageria).

Adicionalmente, existe uma maleabilidade que permite a confecção de outros tipos de Front-End que se comuniquem diretamente com o Back-End da aplicação, como por exemplo, através de programas nativos para Desktop e Mobile.

A imagem a seguir é uma supersimplificação da visão externa do sistema, sem sua complexidade intrínseca.

cluster_webserviceServiço Webcluster_internalInternofrontendFront-End (Web)backendBack-Endfrontend--backenddbBDbackend--dbdesktopFront-End (Desktop)desktop--backendmobileFront-End (Mobile)mobile--backend