Ce projet est un exemple d'architecture de microservices basée sur GRPC qui utilise MongoDB comme base de données et est intégré à une application mobile Flutter.
Le projet est composé des composants suivants:
Ce microservice contient des fonctionnalités qui aident à envoyer et à vérifier les numéros de téléphone à l'aide d'un mot de passe (OTP) unique, ce service est implémenté à l'aide de Rust & Twilio .
Ce microservice est responsable de la gestion des exigences de notification push du système et est écrit à Golang .
Ce microservice est responsable de la gestion du téléchargement et de la transformation des fichiers multimédias à l'aide de cloudinary et écrit en Golang .
Ce microservice est responsable de la gestion de l'authentification et de l'autorisation des utilisateurs (écrits en Rust ).
Ce microservice contient des fonctionnalités communes partagées sur différents modules du système. Il comprend des fonctionnalités telles que les téléchargements de fichiers, les notifications par e-mail et l'authentification (écrite dans Golang ).
Ce microservice sert de squelette de l'application et contient la logique métier du système. Il fournit des opérations CRUD (créer, lire, mettre à jour, supprimer) sur des données liées aux principales entités du système (écrites en Golang ).
Il s'agit d'une application mobile basée sur Flutter qui interagit avec les microservices pour effectuer diverses opérations telles que la visualisation des données, la création de nouvelles entités et la mise à jour de celles existantes.
Le diagramme suivant montre l'architecture de haut niveau du système:
Les trois microservices sont indépendants les uns des autres et communiquent en utilisant le protocole GRPC. L'application mobile communique avec les microservices en utilisant le même protocole.
Les trois microservices sont intégrés à MongoDB comme base de données. MongoDB est une base de données basée sur des documents NOSQL qui offre des performances et une évolutivité élevées.
Utilisez l'application mobile pour interagir avec le système.
Utilisez un client GRPC tel que GrpCurl ou BloomRPC pour interagir directement avec les microservices.
Ce projet fournit un exemple de la façon de construire une architecture de microservices évolutive et modulaire à l'aide de GRPC et MongoDB. Il montre également comment intégrer une application mobile Flutter avec les microservices pour fournir une expérience utilisateur transparente.