โครงการนี้เป็นตัวอย่างของสถาปัตยกรรม microservices ที่ใช้ GRPC ที่ใช้ MongoDB เป็นฐานข้อมูลและรวมเข้ากับแอปพลิเคชันมือถือ Flutter
โครงการประกอบด้วยส่วนประกอบต่อไปนี้:
Microservice นี้มีฟังก์ชันการทำงานที่ช่วยในการส่งและตรวจสอบหมายเลขโทรศัพท์โดยใช้รหัสผ่านครั้งเดียว (OTP) บริการนี้ใช้งานโดยใช้ Rust & Twilio
Microservice นี้มีหน้าที่จัดการข้อกำหนดการแจ้งเตือนแบบพุชของระบบและเขียนใน Golang
Microservice นี้มีหน้าที่จัดการกับการอัปโหลดและการแปลงไฟล์สื่อโดยใช้ cloudinary & Written ใน Golang
Microservice นี้มีหน้าที่จัดการการตรวจสอบสิทธิ์ของผู้ใช้และการอนุญาต (เขียนด้วย Rust )
microservice นี้มีฟังก์ชันทั่วไปที่ใช้ร่วมกันในโมดูลที่แตกต่างกันของระบบ มันมีฟังก์ชันการทำงานเช่นการอัปโหลดไฟล์การแจ้งเตือนทางอีเมลและการตรวจสอบ (เขียนใน Golang )
Microservice นี้ทำหน้าที่เป็นกระดูกสันหลังของแอปพลิเคชันและมีตรรกะทางธุรกิจของระบบ มันมี CRUD (สร้าง, อ่าน, อัปเดต, ลบ) การดำเนินการเกี่ยวกับข้อมูลที่เกี่ยวข้องกับหน่วยงานหลักของระบบ (เขียนใน Golang )
นี่คือแอปพลิเคชั่นมือถือที่ใช้กระพือที่มีปฏิสัมพันธ์กับ Microservices เพื่อดำเนินการต่าง ๆ เช่นการดูข้อมูลการสร้างเอนทิตีใหม่และการอัปเดตที่มีอยู่
แผนภาพต่อไปนี้แสดงสถาปัตยกรรมระดับสูงของระบบ:
microservices ทั้งสามนั้นเป็นอิสระจากกันและสื่อสารโดยใช้โปรโตคอล GRPC แอพพลิเคชั่นมือถือสื่อสารกับไมโครเซิร์ตโดยใช้โปรโตคอลเดียวกัน
Microservices ทั้งสามตัวถูกรวมเข้ากับ MongoDB เป็นฐานข้อมูล MongoDB เป็นฐานข้อมูลที่ใช้เอกสาร NOSQL ที่ให้ประสิทธิภาพและความยืดหยุ่นสูง
ใช้แอปพลิเคชันมือถือเพื่อโต้ตอบกับระบบ
ใช้ไคลเอนต์ GRPC เช่น GRPCURL หรือ BloomRPC เพื่อโต้ตอบโดยตรงกับ microservices
โครงการนี้ให้ตัวอย่างของวิธีการสร้างสถาปัตยกรรม microservices ที่ปรับขนาดและปรับขนาดได้โดยใช้ GRPC และ MongoDB นอกจากนี้ยังแสดงให้เห็นถึงวิธีการรวมแอปพลิเคชันมือถือ Flutter เข้ากับ Microservices เพื่อมอบประสบการณ์การใช้งานที่ไร้รอยต่อ