Este projeto é um exemplo de uma arquitetura de microsserviços baseada em GRPC que utiliza o MongoDB como seu banco de dados e é integrado a um aplicativo móvel Flutter.
O projeto é composto pelos seguintes componentes:
Esse microsserviço contém funcionalidades que ajudam a enviar e verificar os números de telefone usando a senha única (OTP), este serviço é implementado usando Rust & Twilio .
Esse microsserviço é responsável por lidar com os requisitos de notificação de push do sistema e está escrito em Golang .
Esse microsserviço é responsável por lidar com o upload e a transformação de arquivos de mídia usando cloudinary & escrito em Golang .
Esse microsserviço é responsável por lidar com a autenticação e autorização do usuário (escrito em Rust ).
Esse microsserviço contém funcionalidades comuns que são compartilhadas em diferentes módulos do sistema. Inclui funcionalidades como uploads de arquivos, notificações por email e autenticação (escrito em Golang ).
Este microsserviço serve como espinha dorsal do aplicativo e contém a lógica de negócios do sistema. Ele fornece operações CRUD (Criar, Leia, Atualizar, Excluir) em dados relacionados às entidades principais do sistema (escritas em Golang ).
Este é um aplicativo móvel baseado em vibração que interage com os microsserviços para executar várias operações, como visualizar dados, criar novas entidades e atualizar as existentes.
O diagrama a seguir mostra a arquitetura de alto nível do sistema:
Os três microsserviços são independentes um do outro e se comunicam usando o protocolo GRPC. O aplicativo móvel se comunica com os microsserviços usando o mesmo protocolo.
Todos os três microsserviços são integrados ao MongoDB como seu banco de dados. O MongoDB é um banco de dados baseado em documentos NoSQL que fornece alto desempenho e escalabilidade.
Use o aplicativo móvel para interagir com o sistema.
Use um cliente GRPC, como GRPCURL ou BLOOMRPC, para interagir diretamente com os microsserviços.
Este projeto fornece um exemplo de como criar uma arquitetura de microsserviços escaláveis e modulares usando o GRPC e o MongoDB. Ele também demonstra como integrar um aplicativo móvel Flutter com os microsserviços para fornecer uma experiência perfeita para o usuário.