الأداء والتوسّع

sections.operations

الأداء والتوسّع

كيف يصمد Skrum تحت الحِمل: أهداف p95 على المسارات الساخنة، وذاكرة قراءة مؤقّتة محصورة بمساحة العمل، وسلوك الفوضى عندما يتعطّل أحد الاعتمادات.

الأداء والتوسّع

Skrum هو منصة التحكم الشاملة بالمشاريع بالذكاء الاصطناعي — دردشة الفريق، والمهام والسبرنتات، واجتماعات الفيديو الأصلية، ونشاط الكود الوارد، كل ذلك في مساحة عمل واحدة، مع انتظار كل إجراء ذكاء اصطناعي لموافقة بشرية.

صُمِّم Skrum ليبقى سريع الاستجابة عندما تنمو مساحة العمل وعندما تمرّ البنية التحتية بيوم سيّئ. توثّق هذه الصفحة الأرقام الملموسة، ونموذج التخزين المؤقّت، وأوضاع الأعطال.

عتبات الحِمل

تُثبِّت سيناريوهات k6 الاختيارية ضمن load/ أداءَ Skrum على هذه الأهداف مقابل الحزمة المُشكَّلة مع مزوّدين وهميين حتميين:

  • بثّ الوقت الحقيقي — 500 عميل socket متزامن في قناة واحدة، تأخّر p95 من إرسال الرسالة إلى بثّها ≤ 250 ms، ومعدل الأخطاء < 0.1%.
  • إرسال رسالة — p95 ≤ 200 ms عند 50 rps، ومعدل الأخطاء < 0.5%.
  • قراءة لوحة المهام (GET /api/tasks?projectId=…) — p95 ≤ 150 ms عند 100 rps، ومعدل الأخطاء < 0.5%.
  • البحث (GET /api/search) — p95 ≤ 300 ms عند 50 rps، ومعدل الأخطاء < 1%.
  • ملخّص الصفحة الرئيسية (GET /api/home/summary) — p95 ≤ 200 ms عند 100 rps، ومعدل الأخطاء < 0.5%.

التخزين المؤقّت للقراءة

تغطّي ذاكرة تخزين مؤقّت صغيرة للقراءة تعتمد على Redis ثلاثة مسارات ساخنة: قائمة القنوات لكل مساحة عمل، وإسقاطات لوحة المشاريع، وملخّص لوحة القيادة/الصفحة الرئيسية. كل مفتاح مسبوق بـaccountId مساحة العمل — لن تقرأ مساحة عمل سوى بياناتها المخزّنة مؤقّتاً. الإبطال مدفوع بالأحداث انطلاقاً من العمود الفقري للوقت الحقيقي (message.posted، channel.*، task.*)، مع TTL قصير كشبكة أمان. تخزّن الذاكرة إسقاطات مصرّح بها مسبقاً وغير سرّية فقط.

الصمود أمام الفوضى

عندما يتعطّل أحد الاعتمادات، يفشل Skrum بأمان بدلاً من الكتابة الجزئية أو تسريب البيانات.

  • Redis معطّل. يتراجع الوقت الحقيقي والذاكرة المؤقّتة؛ وتبقى REST تقدّم مصدر الحقيقة من Mongo و Postgres. تفشل حدود المعدل بأمان (رفض، ولا تفتح البوابة أبداً).
  • Mongo أو Postgres غير قابل للوصول. تعيد المسارات خطأً مُعرَّباً من فئة 503 — دون تعطّل غير معالج ودون كتابة جزئية.
  • MinIO أو LiveKit معطّل. يفشل رفع الملفات والاجتماعات بأمان مع خطأ مُعرَّب؛ ويستمرّ بقيّة التطبيق في العمل. راجع النسخ الاحتياطي والاستعادة.

عند عودة الاعتماد، تُستأنف الخدمة تلقائياً — دون الحاجة إلى إعادة تشغيل يدوية.

الأسئلة الشائعة

  • هل أشغّل مجموعة k6 في CI؟ نعم، خلف وظيفة اختيارية. لا تحكم سيناريوهات الحِمل عمليّة سحب طلب اعتيادية أبداً.
  • هل يمكنني رفع TTL الذاكرة المؤقّتة؟ المدّة قصيرة عن قصد. الإبطال المدفوع بالأحداث هو المسار الرئيسي للصحّة، وTTL مجرّد شبكة أمان لانقطاع Redis.
  • هل تُسرَّب الذاكرة المؤقّتة بين مساحات العمل؟ لا — كل مفتاح مسبوق بـaccountId وثمّة اختبار مخصّص يثبت العزل بين المستأجرين.

انظر أيضًا: وثائق Skrum