Post by Youssef alnahas

-- software engineer (full stack ©php | .net)

السلام عليكم ورحمة الله وبركاته 🤍 في البوست اللي فات... اتكلمنا عن Monolith و Microservices. وعرفنا إن المشاريع الكبيرة أحيانًا بتتقسم لخدمات مستقلة. لكن النهارده عندنا مشكلة مختلفة تمامًا... تخيل إنك ضغطت: Register في موقع معين. وفجأة النظام محتاج: ✔ إنشاء الحساب ✔ إرسال Email ترحيب ✔ إرسال كود تفعيل ✔ إنشاء صورة Profile ✔ تسجيل العملية في Logs ✔ إضافة نقاط ترحيبية السؤال هنا... هل المفروض المستخدم يستنى قدام الشاشة لحد ما كل ده يخلص؟ 😅 أكيد لا. لأن المستخدم مش مهتم النظام بيعمل إيه وراء الكواليس. هو عاوز يشوف: "تم إنشاء الحساب بنجاح" وخلاص. ومن هنا ظهر مفهوم مهم جدًا: Queues تخيل معايا إن عندك مطعم. وفيه شيف بيجهز الطلبات. هل كل عميل يدخل المطبخ بنفسه؟ أكيد لا. فيه قائمة انتظار. كل طلب يتحط فيها. والشيف يجهز الطلبات واحدة واحدة. ونفس الفكرة بتحصل هنا. بدل ما الـ Request ينفذ كل حاجة بنفسه. يحط المهمة في Queue. ويرجع Response للمستخدم فورًا. وبعد كده ييجي جزء تاني اسمه: Worker أو العامل. يقف قدام الـ Queue. ويبدأ ينفذ المهام واحدة واحدة. مثال: المستخدم سجل حساب جديد. النظام يحفظ الحساب. ويرجع للمستخدم: "تم التسجيل بنجاح" وفي الخلفية: Queue ↓ Send Welcome Email ↓ Generate Profile Image ↓ Send Verification Code ↓ Add Reward Points وكل ده يحصل بدون ما المستخدم يحس. الميزة هنا إن النظام يبقى: ✔ أسرع ✔ أكثر استقرارًا ✔ قادر على تحمل ضغط أكبر ✔ أفضل في تجربة المستخدم وعلشان كده هتلاقي Queues مستخدمة في: إرسال Emails إرسال SMS معالجة الصور إنشاء PDFs الإشعارات وتقريبًا أي عملية ثقيلة. ومن أشهر الأدوات المستخدمة: Redis Queue RabbitMQ Amazon SQS وغيرهم كتير. لكن هنا يظهر سؤال جديد... طيب لو عاوز أوصل معلومة للمستخدم لحظيًا؟ بدون Refresh. وبدون ما المستخدم يطلب البيانات كل شوية؟ وده بالضبط اللي هنتكلم عنه في البوست الجاي 🔥 WebSockets والسر وراء الرسائل الفورية في WhatsApp و Messenger 🤍 #سلسلة_الباك_اند #يوسف_النحاس #Backend #Queues #BackgroundJobs #SoftwareEngineering #WebDevelopment #Laravel #DotNet #Spring #Java

Post content