نظام حجز رحلات مبني على Microservices Architecture باستخدام Spring Boot وJava 17، مصمم بهدف فصل مكونات النظام إلى خدمات مستقلة يمكن تطويرها وتشغيلها والتواصل بينها بشكل منفصل.
مكونات النظام:
يتكون من 5 خدمات متخصصة (رحلات، حجوزات، عملاء، مدفوعات، إشعارات) مع قاعدة بيانات MySQL مستقلة لكل خدمة، موحّدة عبر Spring Cloud Gateway كنقطة دخول موحدة، وNetflix Eureka للـ Service Discovery.
أنماط التواصل:
REST للتواصل الخارجي عبر الـ API Gateway
gRPC للتواصل المتزامن بين Booking وFlight Service في عمليات الحجز
RabbitMQ للتواصل غير المتزامن ونشر الأحداث بين الخدمات
GraphQL في Flight Service للاستعلام المرن عن البيانات
إدارة العمليات الموزعة:
تطبيق Saga Choreography لإدارة عملية الحجز كـ Distributed Transaction، مع Compensating Transactions للتعامل مع سيناريوهات الفشل وإعادة المقعد المتاح عند إلغاء الحجز.
البنية التحتية:
تشغيل الخدمات بـ Docker وDocker Compose، مع CI/CD pipeline عبر GitHub Actions لبناء الخدمات وإنشاء Docker Images ورفعها تلقائياً إلى Docker Hub.
التقنيات: Java 17 · Spring Boot 3.2.5 · Spring Cloud Gateway · Netflix Eureka · gRPC · RabbitMQ · GraphQL · MySQL · Docker · GitHub Actions