Proyek ini adalah contoh arsitektur Microservices berbasis GRPC yang memanfaatkan MongoDB sebagai basis datanya dan diintegrasikan dengan aplikasi seluler flutter.
Proyek ini terdiri dari komponen berikut:
Layanan Microservice ini berisi fungsionalitas yang membantu mengirim dan memverifikasi nomor telepon menggunakan kata sandi satu kali (OTP) layanan ini diimplementasikan menggunakan Rust & Twilio .
Layanan mikro ini bertanggung jawab untuk menangani persyaratan pemberitahuan push sistem dan ditulis dalam Golang .
Microservice ini bertanggung jawab untuk menangani unggahan dan transformasi file media menggunakan cloudinary & ditulis dalam Golang .
Microservice ini bertanggung jawab untuk menangani otentikasi dan otorisasi pengguna (ditulis dalam Rust ).
Layanan mikro ini berisi fungsionalitas umum yang dibagikan di berbagai modul sistem. Ini termasuk fungsionalitas seperti unggahan file, pemberitahuan email, dan otentikasi (ditulis dalam Golang ).
Microservice ini berfungsi sebagai tulang punggung aplikasi dan berisi logika bisnis sistem. Ini menyediakan operasi crud (buat, baca, perbarui, hapus) pada data yang terkait dengan entitas inti sistem (ditulis dalam Golang ).
Ini adalah aplikasi seluler berbasis flutter yang berinteraksi dengan layanan mikro untuk melakukan berbagai operasi seperti melihat data, membuat entitas baru, dan memperbarui yang sudah ada.
Diagram berikut menunjukkan arsitektur sistem tingkat tinggi:
Tiga layanan mikro tidak tergantung satu sama lain dan berkomunikasi menggunakan protokol GRPC. Aplikasi seluler berkomunikasi dengan layanan mikro menggunakan protokol yang sama.
Ketiga layanan microser terintegrasi dengan MongoDB sebagai database mereka. MongoDB adalah database berbasis dokumen NoSQL yang menyediakan kinerja dan skalabilitas tinggi.
Gunakan aplikasi seluler untuk berinteraksi dengan sistem.
Gunakan klien GRPC seperti GRPCURL atau BloomRPC untuk secara langsung berinteraksi dengan Microservices.
Proyek ini memberikan contoh cara membangun arsitektur layanan microsable yang dapat diskalakan dan modular menggunakan GRPC dan MongoDB. Ini juga menunjukkan cara mengintegrasikan aplikasi seluler flutter dengan layanan microser untuk memberikan pengalaman pengguna yang mulus.