نظام متكامل لمعالجة الطلبات مبني باستخدام NestJS وMicroservices Architecture، مصمم لتقسيم عمليات النظام إلى خدمات مستقلة وقابلة للتوسع، مع تطبيق التواصل المتزامن وغير المتزامن بين الخدمات.
يتكون النظام من 5 خدمات رئيسية:
* Authentication Service لإدارة المستخدمين والمصادقة.
* Product Service لإدارة المنتجات والمخزون.
* Order Service لإنشاء وتتبع الطلبات.
* Payment Service لمعالجة عمليات الدفع.
* Notification Service لإدارة الإشعارات.
أهم المميزات:
* تصميم Microservices Architecture مع فصل مسؤوليات كل خدمة.
* استخدام MongoDB مع قاعدة بيانات مستقلة لكل Microservice.
* استخدام RabbitMQ لتنفيذ التواصل المتزامن RPC بين Order وPayment.
* استخدام Apache Kafka لمعالجة الأحداث بشكل غير متزامن بين Payment وNotification.
* Event-driven workflow لمعالجة نجاح وفشل عمليات الدفع وإرسال الإشعارات.
* توثيق REST APIs باستخدام Swagger.
* تشغيل الخدمات والـMessage Brokers باستخدام Docker وDocker Compose.
* تصميم Modular قابل للتوسع والصيانة.
* تطبيق فصل البيانات بين الخدمات بما يتناسب مع طبيعة أنظمة Microservices.
* إعداد بيئة تشغيل متكاملة تشمل RabbitMQ وKafka وMongoDB.
تم تنفيذ المشروع باستخدام NestJS وTypeScript مع Docker، MongoDB/Mongoose، RabbitMQ، Apache Kafka وSwagger، مع التركيز على قابلية التوسع، فصل المسؤوليات، والتواصل بين الخدمات.