, 9 tweets, 2 min read Read on Twitter
عندما نطور نظاماً ليستخدمه الآلاف او الملايين , لن يكون كتطوير نظام يدخله بضعة آلاف . إن ظننت ان الانظمة الكبيرة تعتمد على Full Stack معروف فيه Front-End و API و قاعدة بيانات فعليك إعادة التفكير . في هذه السلسلة سنستعرض لمحة عن كيف يمكن أن تبنى مثل هذه الانظمة .
يمكن القول بأن أي نظام يعتمد على عمليتين رئيسيتين إما Command او Query . أمر يغير الState للنظام أي يغير قيمه في الذاكرة و استعلام لا يغير اي قيمة. موضوع الإستعلام سهل فالبيانات محفوظة و يهمنا فقط السرعة . اما امر الCommand فهو حساس قليلاً , فلا تريد أن تفقد طلباً قام به مستخدم.
في الArchitecture العادية باستخدام API و Database قد نفقد اشياء مهمة كحدث او بيانات قام العميل بإدخالها او اختيارها بسبب أن قاعدة البيانات بطيئة او حدث Dead Lock في جدول ما و هذا وارد جداً . لذا وُجدت تقنيات Messaging Systems كـ Apache Kafka او RabbitMQ.
هذه التقنيات وسيطة بين الFront-End و Back-End وظيفتها استقبال الطلبات من الخارج سواء من مستخدم او من نظام اخر على هيئة رسائل عبر API مثلاً دون معالجة تذكر و تخزينها في Queue . هذه التقنيات فعّالة جداً من ناحية القدرة الاستيعابية لعدد الRequests تصل إلى الملايين في الثانية .
بعد استقبال الRequests و تخزينها اصبحنا مطمئنين اننا لم نفقد شيئاً , عندها نعالج ذلك الطلب عن طريق عمل Subscribe من نظامنا للQueue فنأخذ منه الرسالة المطلوبة و نعالجها و نخزنها في قاعدة بيانات ثم بعدها إن اردنا نؤكد له ذلك ليقوم بحذفها من ذلك الQueue ( يعتمد على نوع المنتج ) .
من الجميل و المفيد تجربة تلك التقنيات , ليس من الضروري أن نقوم بتنصيب نظام ك Kafka او RabbitMQ , يمكننا ببساطة إن كنا نعمل على بيئة ويندوز أن نستخدم خاصية موجودة في اي نظام و يندوز اسمها MSMQ و نجرب التعامل معها او نتعامل مع Service Broker في SQLServer و الخيارات كثيرة .
هناك اختلافات في طريقة معالجة تلك الانظمة للرسائل و لكل نوع مميزاته حسب متطلب الحل الذي تقدمه , هذه التغريدات التي اكتبها الان في تويتر استلمها Kafka و لذا هي تصلكم لتقرأوها الان . سُمي كافكا تيمناً بالشاعر Franz Kafka حيث يقول في احد رسائلة :
"بل اكتبي إلي يوميًا، على الرغم من ذلك، قد تكتبين في اختصار شديد، رسائل أقصر من الرسائل التي ترسلينها إلي الآن، سطرين فقط، أو سطر واحد، المهم هو أن حرماني من هذا السطر الواحد، سيكون معناه عذابي الرهيب".
فرانز كافكا .
بما أنا تحدثنا على الArchitecture على مستوى الSolution , سأكتب غداً عن طريقة رائعة من طرق Architecture من ناحية الSoftware للتعامل مع تقنيات
ال Messaging Solutions.
Missing some Tweet in this thread?
You can try to force a refresh.

Like this thread? Get email updates or save it to PDF!

Subscribe to Ahmed Aljaberi
Profile picture

Get real-time email alerts when new unrolls are available from this author!

This content may be removed anytime!

Twitter may remove this content at anytime, convert it as a PDF, save and print for later use!

Try unrolling a thread yourself!

how to unroll video

1) Follow Thread Reader App on Twitter so you can easily mention us!

2) Go to a Twitter thread (series of Tweets by the same owner) and mention us with a keyword "unroll" @threadreaderapp unroll

You can practice here first or read more on our help page!

Follow Us on Twitter!

Did Thread Reader help you today?

Support us! We are indie developers!


This site is made by just three indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3.00/month or $30.00/year) and get exclusive features!

Become Premium

Too expensive? Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal Become our Patreon

Thank you for your support!