このプロジェクトは、MongoDBをデータベースとして利用し、Flutterモバイルアプリケーションと統合されているGRPCベースのMicroservicesアーキテクチャの例です。
このプロジェクトは、次のコンポーネントで構成されています。
このマイクロサービスには、ワンタイムパスワード(OTP)を使用して電話番号の送信と確認に役立つ機能が含まれています。このサービスは、 Rust & Twilioを使用して実装されています。
このマイクロサービスは、システムのプッシュ通知要件の処理を担当し、 Golangで記述されています。
このマイクロサービスは、 Golangでcloudinary &Writingを使用して、メディアファイルのアップロードと変換を処理する責任があります。
このマイクロサービスは、ユーザーの認証と承認( Rustで記述されている)の処理を担当しています。
このマイクロサービスには、システムのさまざまなモジュールで共有される共通の機能が含まれています。これには、ファイルのアップロード、電子メール通知、認証などの機能が含まれます( Golangで書かれています)。
このマイクロサービスは、アプリケーションのバックボーンとして機能し、システムのビジネスロジックが含まれています。システムのコアエンティティ( Golangで記述)に関連するデータの操作(作成、読み取り、更新、削除)を提供します。
これは、マイクロサービスと対話して、データの表示、新しいエンティティの作成、既存のエンティティの更新など、さまざまな操作を実行するフラッターベースのモバイルアプリケーションです。
次の図は、システムの高レベルアーキテクチャを示しています。
3つのマイクロサービスは互いに独立しており、GRPCプロトコルを使用して通信します。モバイルアプリケーションは、同じプロトコルを使用してマイクロサービスと通信します。
3つのマイクロサービスはすべて、データベースとしてMongoDBと統合されています。 MongoDBは、高性能とスケーラビリティを提供するNOSQLドキュメントベースのデータベースです。
モバイルアプリケーションを使用して、システムと対話します。
GRPCURLやBloomRPCなどのGRPCクライアントを使用して、マイクロサービスと直接対話します。
このプロジェクトは、GRPCとMongoDBを使用してスケーラブルでモジュラーマイクロサービスアーキテクチャを構築する方法の例を提供します。また、フラッターモバイルアプリケーションをマイクロサービスと統合して、シームレスなユーザーエクスペリエンスを提供する方法も示しています。