هذا المشروع هو مثال على بنية الخدمات الصغيرة المستندة إلى GRPC والتي تستخدم MongoDB كقاعدة بياناتها ومدمجة مع تطبيق محمول Flutter.
يتكون المشروع من المكونات التالية:
تحتوي هذه الخدمات المجهرية على وظائف تساعد في إرسال أرقام الهواتف والتحقق منها باستخدام كلمة مرور لمرة واحدة (OTP) يتم تنفيذ هذه الخدمة باستخدام Rust & Twilio .
هذه الخدمات المجهرية هي المسؤولة عن التعامل مع متطلبات إشعار الدفع للنظام ويتم كتابتها في Golang .
هذه الخدمات المجهرية هي المسؤولة عن التعامل مع تحميل ملفات الوسائط وتحويلها باستخدام cloudinary & Cropt في Golang .
هذه الخدمات المجهرية هي المسؤولة عن التعامل مع مصادقة المستخدم وترخيصه (مكتوب في Rust ).
تحتوي هذه الخدمات المجهرية على وظائف شائعة يتم مشاركتها عبر وحدات مختلفة من النظام. ويشمل وظائف مثل تحميل الملفات ، وإخطارات البريد الإلكتروني ، والمصادقة (مكتوبة في Golang ).
تعمل هذه الخدمات المجهرية كعمود خارجي للتطبيق ويحتوي على منطق العمل للنظام. يوفر عمليات CRUD (إنشاء ، قراءة ، تحديث ، حذف) على البيانات المتعلقة بالكيانات الأساسية للنظام (مكتوب في Golang ).
هذا هو تطبيق الهاتف المحمول القائم على الرفرفة يتفاعل مع الخدمات المجهرية لأداء عمليات مختلفة مثل عرض البيانات وإنشاء كيانات جديدة وتحديث تلك الموجودة.
يوضح الرسم البياني التالي بنية النظام عالية المستوى:
الخدمات الدقيقة الثلاثة مستقلة عن بعضها البعض والتواصل باستخدام بروتوكول GRPC. يتواصل تطبيق الهاتف المحمول مع الخدمات المجهرية باستخدام نفس البروتوكول.
يتم دمج جميع الخدمات المجهرية الثلاثة مع MongoDB كقاعدة بياناتها. MongoDB هي قاعدة بيانات قائمة على المستندات NOSQL توفر الأداء العالي وقابلية التوسع.
استخدم تطبيق الهاتف المحمول للتفاعل مع النظام.
استخدم عميل GRPC مثل GRPCURL أو BloomRPC للتفاعل مباشرة مع الخدمات المجهرية.
يقدم هذا المشروع مثالاً على كيفية إنشاء بنية قابلة للتطوير ومعيار للخدمات الدقيقة باستخدام GRPC و MongoDB. يوضح أيضًا كيفية دمج تطبيق Flutter Mobile مع الخدمات المجهرية لتوفير تجربة مستخدم سلسة.