Este proyecto es un ejemplo de una arquitectura de microservicios basada en GRPC que utiliza MongoDB como su base de datos y está integrada con una aplicación móvil Flutter.
El proyecto está compuesto por los siguientes componentes:
Este microservicio contiene funcionalidades que ayudan a enviar y verificar los números de teléfono utilizando contraseña única (OTP) Este servicio se implementa utilizando Rust & Twilio .
Este microservicio es responsable de manejar los requisitos de notificación push del sistema y está escrito en Golang .
Este microservicio es responsable de manejar la carga y la transformación de archivos multimedia utilizando cloudinary y escrito en Golang .
Este microservicio es responsable de manejar la autenticación y la autorización de los usuarios (escrito en Rust ).
Este microservicio contiene funcionalidades comunes que se comparten en diferentes módulos del sistema. Incluye funcionalidades como cargas de archivos, notificaciones por correo electrónico y autenticación (escrita en Golang ).
Este microservicio sirve como la columna vertebral de la aplicación y contiene la lógica comercial del sistema. Proporciona operaciones CRUD (crear, leer, actualizar, eliminar) en datos relacionados con las entidades centrales del sistema (escritas en Golang ).
Esta es una aplicación móvil basada en Flutter que interactúa con los microservicios para realizar diversas operaciones, como ver datos, crear nuevas entidades y actualizar las existentes.
El siguiente diagrama muestra la arquitectura de alto nivel del sistema:
Los tres microservicios son independientes entre sí y se comunican usando el protocolo GRPC. La aplicación móvil se comunica con los microservicios utilizando el mismo protocolo.
Los tres microservicios están integrados con MongoDB como su base de datos. MongoDB es una base de datos de documentos NoSQL que proporciona un alto rendimiento y escalabilidad.
Use la aplicación móvil para interactuar con el sistema.
Use un cliente GRPC como GRPCURL o BloomRPC para interactuar directamente con los microservicios.
Este proyecto proporciona un ejemplo de cómo construir una arquitectura de microservicios escalable y modular utilizando GRPC y MongoDB. También demuestra cómo integrar una aplicación móvil Flutter con los microservicios para proporcionar una experiencia de usuario perfecta.