Qwizin — سيناريوهات سمات الجودة
الحالة: مسودة v0.1 · التاريخ: 2026-07-20
المُدخل: 00-requirements-baseline.md · المنهج: الصيغة السداسية للسيناريو (المصدر، المحفّز، المكوّن، البيئة، الاستجابة، مقياس الاستجابة)
الملخّص#
الوثائق المصدرية تذكر أهداف الجودة كصفات فقط: "آمن"، "قابل للتوسّع"، "سهل الاستخدام"، "مكالمات فيديو مستقرة". لا شيء منها قابل للقياس، وبالتالي لا شيء منها قادر على توجيه قرار تصميمي أو دحضه. تحوّل هذه الوثيقة تلك الصفات إلى 21 سيناريو قابلًا للاختبار.
النتيجة الأبرز هي أن سمات الجودة المهيمنة في Qwizin ليست تلك التي تُشدّد عليها الوثائق. الوثائق تركّز على التكلفة وسهولة الاستخدام. أما المعمارية فتهيمن عليها فعليًا:
- السرّية وعزل المستأجرين (tenant isolation) — تحتفظ المنصة بسجلات تجارية وبطاقات ضريبية وسجلات صاحب عمل عن موظفيه. تسريب عابر للمستأجرين حدث وجودي وواجب الإبلاغ بموجب PDPL. هذا يتفوّق على كل ما عداه.
- سلامة التقييم والشهادات — الشهادات تُثبت كفاءة في سلامة الغذاء. شهادة قابلة للتزوير أو العبث تنقل خطرًا واقعيًا إلى روّاد المطاعم وتُدمّر ادعاء القيمة الجوهري للمنصة. هذا شأن مجاور للسلامة (safety-adjacent) لا تتعامل معه أي وثيقة مصدرية على هذا الأساس.
- قابلية التعديل عند نقاط الفصل المستقبلية (seams) للمرحلة الثانية — يلتزم
CONF-04 بنطاق للمرحلة الثانية يبلغ أضعاف نطاق الـ MVP. تكلفة الخطأ في رسم الحدود هي إعادة كتابة كاملة.
في المقابل، التوافرية (availability) والأداء الخام متطلبات متوسطة. هذا نظام مواعيد مجدولة وتنزيل مستندات ودليل كثيف القراءة — لا مِقسم مدفوعات ولا منصة تداول لحظية. المبالغة في هندسة التوافرية على حساب السمات الثلاث أعلاه هي الخطأ الكلاسيكي هنا.
منهج تحديد الأولويات#
يحمل كل سيناريو زوجًا بأسلوب ATAM (القيمة التجارية، الأثر المعماري)، كل منهما H/M/L.
(H,H) — يجب التصميم لها صراحةً والتحقق منها. هذه هي التي تقود المعمارية.
(H,L) — مهمّة لكن يمكن تحقيقها بالممارسات المعتادة؛ لا تُفرط في الاستثمار فيها.
(L,H) — مكلفة معماريًا مقابل قيمة محدودة؛ مرشّحة للتأجيل المتعمّد.
1. الأمن — السرّية وعزل المستأجرين#
QAS-SEC-01 — عزل بيانات المستأجرين (H,H) ⭐ الأولوية القصوى#
|
|
| المصدر |
مسؤول أو موظف مُصادَق عليه تابع للشركة A |
| المحفّز |
يطلب موردًا (سجل موظف، نتيجة تقييم، شهادة، مستند) يخصّ الشركة B — عبر إشارة مباشرة للكائن، أو معرّف مُعدَّد، أو معامل تصفية مُتلاعب به |
| المكوّن |
طبقة التخويل في الـ API + طبقة الوصول إلى البيانات |
| البيئة |
تشغيل طبيعي |
| الاستجابة |
رفض الطلب؛ عدم إرجاع أي بيانات أو بيانات وصفية تؤكد الوجود؛ كتابة الحدث في سجل تدقيق الأمن |
| مقياس الاستجابة |
صفر عمليات قراءة عابرة للمستأجرين ناجحة. يُفرَض ذلك عبر نطاق مستأجر افتراضي بالرفض (default-deny) يُطبَّق في طبقة الاستمرارية (persistence layer)، لا عبر فحوص لكل نقطة نهاية. يُتحقَّق منه بمجموعة اختبارات آلية تحاول الوصول العابر للمستأجرين على 100 % من نقاط النهاية المقيّدة بالمستأجر داخل CI. |
المبرّر: العيب الكارثي الأرجح على الإطلاق في تطبيق Laravel متعدد المستأجرين هو استعلام نسي نطاق المستأجر الخاص به. فحوص التخويل لكل نقطة نهاية تفشل لأنها تعتمد على انضباط المطوّر عند كل نقطة نهاية جديدة إلى الأبد. يفرض المقياس عمدًا آلية إنفاذ لا نتيجة، لأن الآلية وحدها هي القابلة للاختبار مسبقًا.
QAS-SEC-02 — سرّية المستندات القانونية (H,H)#
|
|
| المصدر |
مهاجم غير مُصادَق عليه، أو مستخدم مُصادَق عليه دون استحقاق |
| المحفّز |
يحاول استرجاع سجل تجاري أو بطاقة ضريبية مرفوعة عبر رابط مُخمَّن أو مُسرَّب، أو بعد إلغاء استحقاق وصوله |
| المكوّن |
تخزين الكائنات (object storage) + خدمة الوصول للمستندات |
| البيئة |
تشغيل طبيعي |
| الاستجابة |
رفض الوصول؛ لا يُقدَّم المستند أبدًا من رابط عام الوصول دائم الصلاحية |
| مقياس الاستجابة |
المستندات ليست قابلة للقراءة العامة إطلاقًا. الوصول عبر روابط موقَّعة (signed URLs) قصيرة العمر (TTL ≤ 5 دقائق) تُصدَر بعد التخويل فقط. المستندات مشفّرة أثناء التخزين. لا يبقى أي رابط مستند صالحًا بعد إلغاء الاستحقاق خارج نافذة الـ TTL. تُخزَّن الكائنات على نطاق منفصل عن نطاق التطبيق. |
QAS-SEC-03 — رفع ملف خبيث (H,M)#
|
|
| المصدر |
شركة أو مزوّد خدمة في طور التسجيل (يُحتمل أن يكون خبيثًا) |
| المحفّز |
يرفع ملفًا يمثّل برمجية خبيثة، أو ملفًا متعدد الصيغ (polyglot)، أو ملفًا تنفيذيًا متنكرًا في هيئة PDF/صورة |
| المكوّن |
مسار المعالجة (pipeline) الخاص بالرفع |
| البيئة |
تشغيل طبيعي |
| الاستجابة |
يُوضع الملف في الحجر (quarantine) بانتظار الفحص؛ لا يُنفَّذ أبدًا؛ لا يُقدَّم مضمّنًا من أصل موثوق للتطبيق؛ ولا يتعرّض له المراجع الإداري قبل ثبوت نظافته |
| مقياس الاستجابة |
فحص 100 % من الملفات المرفوعة قبل دخولها طابور المراجعة الإدارية. يُتحقَّق من نوع المحتوى عبر فحص البايتات الأولى (magic bytes)، لا عبر الامتداد أو نوع MIME المُعلَن من العميل. تُقدَّم الملفات مع Content-Disposition: attachment وسياسة CSP مقيّدة. يكتمل الفحص خلال 60 ثانية p95؛ ويُقبل الرفع لا تزامنيًا حتى لا يُحجب المستخدم. |
QAS-SEC-04 — نطاق الضرر عند اختراق بيانات الاعتماد (H,M)#
|
|
| المصدر |
مهاجم يحوز رمز تحديث (refresh token) مسروقًا من تطبيق الجوال |
| المحفّز |
يحاول استخدام الرمز بعد أن غيّر المستخدم الشرعي كلمة المرور أو بعد إلغاء الجلسة |
| المكوّن |
إدارة الرموز/الجلسات |
| البيئة |
ما بعد الاختراق |
| الاستجابة |
رفض الرمز؛ إبطال عائلة الرموز بالكامل؛ إخطار المستخدم |
| مقياس الاستجابة |
تدوير رمز التحديث مع كشف إعادة الاستخدام — إعادة تشغيل رمز تحديث مستهلك تُبطل العائلة كاملةً خلال ≤ 1 ثانية. تغيير كلمة المرور يُلغي كل الجلسات. حسابات المسؤولين تتطلب MFA. عمر رمز الوصول (access token) ≤ 15 دقيقة. |
2. السلامة — التقييم والشهادات#
QAS-INT-01 — سرّية مفتاح إجابات التقييم (H,H) ⭐#
|
|
| المصدر |
موظف يؤدي تقييمًا من نوع MCQ |
| المحفّز |
يفحص استجابات الـ API أو حزمة التطبيق أو حركة الشبكة لاكتشاف الإجابات الصحيحة |
| المكوّن |
API تسليم التقييم |
| البيئة |
محاولة تقييم نشطة |
| الاستجابة |
الإجابات الصحيحة غير موجودة في أي حمولة يمكن للعميل بلوغها في أي لحظة قبل التسليم |
| مقياس الاستجابة |
صفر مؤشرات على الإجابة الصحيحة في استجابات تسليم التقييم. التصحيح من جهة الخادم حصريًا. يُتحقَّق منه باختبار عقد (contract test) آلي يؤكد غياب حقول مفتاح الإجابات من مخطط التسليم. |
المبرّر: التنفيذ الساذج يرسل كائن السؤال كاملًا — بما فيه is_correct — إلى العميل ويصحّح محليًا. ينصّ SRC-MOM REQ-05 على "التصحيح الآلي الفوري"، وهو ما يدعو إلى هذا تحديدًا. ولأن الشهادات تحمل وزنًا خارجيًا، فهذا ضابط سلامة لا ترفًا.
QAS-INT-02 — العبث بالدرجات (H,M)#
|
|
| المصدر |
موظف، أو مسؤول شركة يريد أن يبدو طاقمه ممتثلًا |
| المحفّز |
يرسل درجة مزوّرة، أو يعيد تشغيل تسليم ناجح، أو يعيد المحاولة حتى النجاح ثم يعرض المحاولة الناجحة وحدها |
| المكوّن |
تسليم التقييم + سجل المحاولات |
| البيئة |
تشغيل طبيعي |
| الاستجابة |
تُشتق الدرجة من جهة الخادم حصريًا من الإجابات المُرسلة؛ تُحفَظ كل محاولة بصورة غير قابلة للتغيير؛ ولا تُصدَر الشهادة إلا من محاولة ناجحة محسوبة على الخادم |
| مقياس الاستجابة |
الدرجات المُرسلة من العميل لا يُوثق بها إطلاقًا. تُسجَّل كل المحاولات بطوابع زمنية وتُستبقى — سجل المحاولات إلحاقي فقط (append-only). إصدار الشهادة مرتبط معامليًا (transactionally) بمعرّف محاولة بعينه. |
QAS-INT-03 — أصالة الشهادة (H,M)#
|
|
| المصدر |
طرف ثالث — مفتّش بلدي، أو مدقّق من SFDA، أو صاحب عمل محتمل |
| المحفّز |
تُعرض عليه شهادة Qwizin بصيغة PDF ويحتاج تحديد ما إذا كانت أصلية وسارية |
| المكوّن |
توليد الشهادات + نقطة نهاية التحقق العامة |
| البيئة |
مستند غير متصل يُعرض في العالم المادي |
| الاستجابة |
تحمل الشهادة معرّفًا قابلًا للتحقق يُفضي إلى حالة موثوقة وحديثة |
| مقياس الاستجابة |
تتضمّن كل شهادة رمز QR ← رابط تحقق عام يُرجع اسم الحامل والكفاءة وتاريخ الإصدار والسريان الحالي (مع مراعاة الإلغاء وتعليق الشركة وفق OQ-07). معرّفات الشهادات غير متسلسلة وغير قابلة للتخمين. نقطة نهاية التحقق متاحة بنسبة 99.5 % وتجيب في < 1 ثانية p95. |
يعتمد على OQ-09. إذا استُبعد التحقق من النطاق، ينزل هذا السيناريو إلى (M,L) — لكن على المعماري أن يلاحظ أن شهادة سلامة غذاء غير قابلة للتحقق يسهل تزويرها في محرّر رسوميات، وهو ما يقوّض SRC-MOM KPI 3 وادعاء المنصة بالمصداقية.
3. التوافرية#
موقف متعمّد: لا تحتاج Qwizin إلى أربعة تسعات. تحتاج توافرية يمكن التنبؤ بها مركّزة في ساعات العمل السعودية، وتحتاج ألّا تفشل الاستشارات المحجوزة. يجب أن يكون الاستثمار في التوافرية غير متماثل.
QAS-AVL-01 — استشارة الفيديو في موعدها (H,H) ⭐#
|
|
| المصدر |
عميل ومستشار لديهما موعد مؤكد ومدفوع |
| المحفّز |
ينضمّ الطرفان في الوقت المجدول |
| المكوّن |
خدمة جلسات الفيديو + تكامل المزوّد |
| البيئة |
حمل الذروة، ساعات العمل السعودية |
| الاستجابة |
يتصل الطرفان ويحافظان على جلسة مستقرة طوال مدتها |
| مقياس الاستجابة |
≥ 99 % من الاستشارات المجدولة تتصل بنجاح خلال 30 ثانية من انضمام الطرفين. معدل انقطاع الجلسة < 2 %. عند الفشل، يوجد مسار معالجة تلقائي (إعادة انضمام، أو إعادة جدولة، أو استرداد وفق سياسة CONF-02). التدهور إلى الصوت فقط مُفضَّل على فشل الجلسة. |
هذا أعلى سيناريوهات التوافرية قيمةً لأن الفشل فيه هو في الوقت نفسه حدث استرداد، وحدث سمعة، وفشل في سوق ثنائي الجانب — فهو يحرق فترة المستشار الزمنية ومال العميل معًا.
QAS-AVL-02 — توافرية المنصة الأساسية (H,M)#
|
|
| المصدر |
أي مستخدم |
| المحفّز |
يستخدم خصائص التصفح/البحث/التنزيل/الحجز |
| المكوّن |
طبقة الـ API + الويب |
| البيئة |
تشغيل طبيعي |
| الاستجابة |
الخدمة متاحة |
| مقياس الاستجابة |
توافرية شهرية 99.5 % مقيسة مقابل ساعات العمل السعودية (الأحد–الخميس 08:00–20:00 بتوقيت AST) بوصفها الـ SLO الأساسي، و99.0 % إجمالًا. الصيانة المخطّطة خارج هذه النافذة. |
QAS-AVL-03 — انقطاع مزوّد المدفوعات (H,M)#
|
|
| المصدر |
بوابة الدفع الخارجية |
| المحفّز |
تصبح غير متاحة أو تنتهي مهلتها في منتصف المعاملة |
| المكوّن |
MOD-PAY + منفذ الدفع |
| البيئة |
تبعية خارجية متدهورة |
| الاستجابة |
لا خصم مزدوج؛ لا حجز يتيم؛ يتلقى المستخدم نتيجة لا لبس فيها |
| مقياس الاستجابة |
جميع عمليات الدفع ذات خاصية تكرارية آمنة (idempotency) بمفتاح يوفّره العميل. مهمة التسوية (reconciliation) تحسم المعاملات غير المحسومة خلال 15 دقيقة. صفر حالات خصم مزدوج. لا يُؤكَّد الحجز أبدًا دون حالة دفع مؤكدة، ولا يُترك معلّقًا إلى ما لا نهاية — بل ينتهي بنتيجة صريحة. |
QAS-AVL-04 — التدهور السلس للوحدات غير الحرجة (M,M)#
|
|
| المصدر |
فشل مكوّن داخلي (محرك البحث، خدمة الإشعارات، worker توليد PDF) |
| المحفّز |
يصبح المكوّن غير متاح |
| المكوّن |
حدود الوحدات (modules) |
| البيئة |
فشل جزئي |
| الاستجابة |
تستمر التدفقات الأساسية (تسجيل الدخول، الحجز، التعلّم، تنزيل القوالب) |
| مقياس الاستجابة |
فشل البحث ← قائمة متدهورة مدعومة بقاعدة البيانات، لا صفحة خطأ. فشل الإشعارات ← يُوضع في طابور لإعادة المحاولة، ولا يحجب المعاملة الأصلية أبدًا. فشل worker الـ PDF ← تُوسم الشهادة كمعلّقة وتُولَّد عند التعافي، ونتيجة التقييم لا تُفقد أبدًا. لا تبعية غير حرجة تقع في المسار التزامني لتدفق حرج. |
4. الأداء وقابلية التوسّع#
QAS-PERF-01 — استجابة API الجوال على شبكات الجوال السعودية (H,M)#
|
|
| المصدر |
مستخدم جوال على شبكة 4G |
| المحفّز |
يفتح دليل الـ marketplace أو كتالوج القوالب |
| المكوّن |
API + البحث + CDN |
| البيئة |
حمل طبيعي، داخل المملكة |
| الاستجابة |
يُعرَض المحتوى |
| مقياس الاستجابة |
الـ API عند p95 < 300 مللي ثانية، وp99 < 800 مللي ثانية من جهة الخادم، مقيسة داخل المنطقة. أول محتوى ذي معنى في < 2 ثانية على 4G. الحمولات مقسّمة إلى صفحات؛ استجابات القوائم < 100 كيلوبايت. |
QAS-PERF-02 — البحث في الـ marketplace باللغة العربية (H,H) ⭐#
|
|
| المصدر |
صاحب مطعم يبحث بالعربية |
| المحفّز |
يبحث عن مورّد بمصطلحات عربية — بإملاء غير متسق (أ/ا/إ، ة/ه، ى/ي)، بالتشكيل أو بدونه، ومع تنوّع صرفي |
| المكوّن |
محرك البحث + pipeline الفهرسة |
| البيئة |
تشغيل طبيعي |
| الاستجابة |
تُرجَع المزوّدون ذوو الصلة بصرف النظر عن التباين الإملائي؛ ويُرتَّب مشتركو featured فوق غير المميّزين عند تساوي الصلة (REQ-06) |
| مقياس الاستجابة |
البحث عند p95 < 200 مللي ثانية. تُطبَّق التسوية العربية (توحيد الألف/التاء المربوطة/الياء، وتجريد التشكيل) والتجذير (stemming). تعزيز featured هو مضاعِف ترتيب لا يمكنه رفع نتيجة غير ذات صلة فوق نتيجة ذات صلة. تُتحقَّق الصلة مقابل مجموعة استعلامات عربية منتقاة. |
مُصنَّف (H,H) عن قصد. جودة البحث العربي هي المكان الذي تفشل فيه المنظومات الساذجة فشلًا ذريعًا، وهي ليست مسألة تجميلية — المستخدم السعودي الذي يبحث بالعربية فلا يجد شيئًا يستنتج أن الدليل فارغ. البحث النصي الكامل العام على العربية دون تسوية ينتج استرجاعًا يقارب الصفر. هذا يقيّد اختيار محرك البحث وهو موضوع بحث مخصّص.
QAS-SCL-01 — النمو إلى الحجم المستهدف (H,H)#
|
|
| المصدر |
نمو الأعمال |
| المحفّز |
تنمو الحسابات من ~0 إلى عشرات الآلاف خلال 12–18 شهرًا؛ وجلسات الفيديو المتزامنة من ~0 إلى المئات |
| المكوّن |
النظام بأكمله |
| البيئة |
نمو مستمر |
| الاستجابة |
تُضاف السعة دون تغيير معماري |
| مقياس الاستجابة |
طبقة الـ API عديمة الحالة (stateless) تتوسّع أفقيًا؛ وإضافة السعة لا تتطلب أي تغيير في الكود. يستجيب الـ autoscaling للحمل المستمر خلال 3 دقائق. لقاعدة البيانات مسار توسّع محدّد (نسخ قراءة ← تقسيم) بعتبات إطلاق موثّقة. لا مكوّن يتطلب إعادة تصميم دون 50 000 حساب. |
QAS-SCL-02 — مرونة سعة الفيديو (H,H) ⭐#
|
|
| المصدر |
تركّز نمط الحجوزات |
| المحفّز |
تتجمّع الاستشارات في ذُرى ساعات العمل؛ وتقفز الجلسات المتزامنة فوق المتوسط بكثير |
| المكوّن |
بنية الفيديو التحتية |
| البيئة |
ذروة |
| الاستجابة |
السعة متاحة عند الذروة دون دفع ثمنها خارجها |
| مقياس الاستجابة |
تتوسّع سعة الفيديو بناءً على إشارة قائمة على الجلسات/الإجهاد، لا على CPU. نسبة الذروة إلى المتوسط مُفترضة ≥ 5:1 بحكم التجمّع في ساعات العمل. تنمو التكلفة نموًا دون خطي مع الذروة. يكتمل التوسّع قبل نافذة الموعد المحجوز — فهذا طلب يمكن التنبؤ به وينبغي أن يكون مجدولًا من تقويم الحجوزات لا تفاعليًا. |
الجملة الأخيرة رؤية معمارية تستحق الحفظ: على خلاف معظم الأنظمة، تعرف Qwizin حملها المستقبلي مسبقًا لأن الجلسات محجوزة. التوسّع التنبّئي انطلاقًا من تقويم المواعيد أفضل قطعًا من الـ autoscaling التفاعلي هنا.
QAS-SCL-03 — دفعة توليد الشهادات/ملفات PDF (M,M)#
|
|
| المصدر |
مسؤول شركة |
| المحفّز |
يُسنِد تدريبًا إلى 500 موظف يُكملون التقييمات في نافذة زمنية ضيقة |
| المكوّن |
طبقة الـ workers اللاتزامنية |
| البيئة |
دفعة مفاجئة |
| الاستجابة |
تُولَّد كل الشهادات؛ ولا تتأثر حركة المرور التفاعلية |
| مقياس الاستجابة |
التوليد لا تزامني. عمق الطابور يُطلق autoscaling للـ workers. توافر الشهادة عند p95 < دقيقتين بعد النجاح. الدفعة لا تُدهور QAS-PERF-01. |
5. قابلية التعديل#
QAS-MOD-01 — استبدال مزوّد المدفوعات (H,H) ⭐#
|
|
| المصدر |
الأعمال — البوابة غير محسومة (OQ-01)، وقد يفرض الترخيص تغييرًا (OQ-10) |
| المحفّز |
وجوب استبدال مزوّد المدفوعات أو إضافة مزوّد ثانٍ |
| المكوّن |
MOD-PAY + منفذ الدفع (SEAM-01) |
| البيئة |
وقت التصميم/البناء |
| الاستجابة |
الاستبدال محصور في محوّل (adapter) |
| مقياس الاستجابة |
التغييرات محصورة في حزمة محوّل واحدة؛ وصفر تغييرات في الوحدات الأخرى. لا يظهر أي نوع أو حقل أو شكل webhook خاص بالمزوّد خارج المحوّل. المحوّل الجديد قابل للتنفيذ في ≤ 5 أيام-شخص. |
رُفِع هذا السيناريو إلى (H,H) لأن القرار مؤجَّل عن قصد. تأجيل القرار آمن فقط إذا جعلته المعمارية رخيصًا لاحقًا — وهذا هو كامل مبرّر وجود المنفذ.
QAS-MOD-02 — استبدال مزوّد الفيديو (H,H)#
|
|
| المصدر |
تقاطع في التكلفة، أو متطلب إقامة بيانات (data residency)، أو انتهاء عمر المنتج لدى المزوّد |
| المحفّز |
وجوب استبدال مزوّد الفيديو |
| المكوّن |
MOD-VID + منفذ الفيديو (SEAM-02) |
| البيئة |
وقت التصميم/البناء |
| الاستجابة |
الاستبدال محصور في محوّل |
| مقياس الاستجابة |
دورة حياة الغرفة، وإصدار الرموز، وأحداث المشاركين، والتسجيل — تُعبَّر عنها جميعًا بوصفها مفاهيم مجال محايدة تجاه المزوّد. المحوّل قابل للاستبدال في ≤ 10 أيام-شخص. وحدات الحجز والدفع والإشعارات لا تعلم شيئًا عن المزوّد. |
QAS-MOD-03 — استخراج وحدة في المرحلة الثانية (H,H) ⭐#
|
|
| المصدر |
خارطة طريق المرحلة الثانية (CONF-04) |
| المحفّز |
وجوب تحوّل وحدة (مثل MOD-LRN وهي تنمو إلى LMS كامل، أو MOD-MKT إلى مشتريات) إلى خدمة قابلة للنشر باستقلال |
| المكوّن |
حدود الوحدات + التواصل بين الوحدات |
| البيئة |
تطوّر ما بعد الـ MVP |
| الاستجابة |
استخراج دون إعادة تصميم بقية النظام |
| مقياس الاستجابة |
لا مفاتيح خارجية (foreign keys) عابرة للوحدات في قاعدة البيانات. لا اجتياز لعلاقات ORM عابر للوحدات. تمرّ النداءات بين الوحدات عبر عقود منشورة؛ وتمرّ الأحداث بين الوحدات عبر ناقل أحداث (event bus) قابل للتبديل من داخل العملية إلى وسيط (broker) دون تغيير كود الناشر أو المشترك. استخراج وحدة واحدة ≤ 20 يوم-شخص. يُفرَض ذلك باستمرار عبر التحليل الساكن في CI — لا بانضباط المراجعة. |
بند الإنفاذ في CI هو المقصد كلّه. الأنماط الأحادية المعيارية (modular monoliths) لا تفشل لأن الحدود رُسمت خطأً، بل لأن لا شيء منع تآكلها. الحد الذي لا تفحصه الآلة مجرد تعليق.
QAS-MOD-04 — إضافة قالب بوصفه أداة مهيكلة (M,H)#
|
|
| المصدر |
تطوّر المنتج (SEAM-03) |
| المحفّز |
وجوب تحوّل قائمة تدقيق قابلة للتنزيل إلى أداة قابلة للتعبئة داخل التطبيق مع تسليمات ودرجات |
| المكوّن |
نموذج بيانات MOD-TPL |
| البيئة |
ما بعد الـ MVP |
| الاستجابة |
تغيير إضافي (additive) |
| مقياس الاستجابة |
تُنمذَج بيانات القالب الوصفية بوصفها كيانات مهيكلة ذات أقسام وعناصر مُنمَّطة منذ اليوم الأول، حتى لو كان الـ MVP لا يقدّم سوى ملف. إضافة التقاط الاستجابات لا تتطلب أي ترحيل (migration) لسجلات القوالب القائمة. |
(M,H) — قيمة متواضعة في الـ MVP، ورافعة معمارية عالية. التكلفة اليوم صغيرة (مخطط أغنى خلف API لم يتغير)؛ أما تكلفة التعديل لاحقًا فهي إعادة نمذجة كاملة للوحدة.
6. الامتثال والتوطين والتشغيلية#
QAS-CMP-01 — طلب صاحب البيانات لحقوقه (H,M)#
|
|
| المصدر |
صاحب بيانات يمارس حقوقه بموجب PDPL |
| المحفّز |
يطلب الوصول إلى بياناته الشخصية أو تصحيحها أو حذفها |
| المكوّن |
النظام بأكمله |
| البيئة |
تشغيل طبيعي |
| الاستجابة |
تُحدَّد مجموعة البيانات الكاملة وتُصدَّر أو تُمحى عبر جميع المخازن |
| مقياس الاستجابة |
كل البيانات الشخصية قابلة للتحديد بمعرّف صاحبها عبر قاعدة البيانات الأساسية، وتخزين الكائنات، وفهرس البحث، والسجلات، والتحليلات، والنسخ الاحتياطية. يُنتَج التصدير خلال المهلة النظامية. ويراعي الحذف تعارضات الاحتفاظ القانوني (السجلات المالية، الشهادات الصادرة) عبر استثناءات موثّقة وقابلة للدفاع عنها بدلًا من امتناع صامت عن الحذف. |
الجزء الصعب ليس الحذف — بل الحصر. يجب صيانة جرد للبيانات الشخصية بوصفه مُنتَجًا من الدرجة الأولى، وإلا صار هذا السيناريو غير قابل للتحقيق بمجرد انتشار البيانات في فهرس بحث وpipeline سجلات.
QAS-CMP-02 — مسار التدقيق لقرارات الاعتماد (H,L)#
|
|
| المصدر |
شركة مرفوضة تنازع في القرار، أو جهة تنظيمية |
| المحفّز |
تطلب تاريخ قرار اعتماد |
| المكوّن |
سجل التدقيق |
| البيئة |
بعد الواقعة |
| الاستجابة |
تاريخ كامل ومقاوم للعبث |
| مقياس الاستجابة |
كل انتقال في حالة الاعتماد يسجّل الفاعل والطابع الزمني والحالة السابقة/الجديدة والسبب. سجلات التدقيق إلحاقية فقط. يُحتفظ بها ≥ 7 سنوات (بما يتوافق مع السجلات المالية). يُشار إلى المستندات بإصدار غير قابل للتغيير، بحيث لا تطمس إعادة تقديم مستند الدليلَ الذي بُني عليه القرار. |
QAS-LOC-01 — صحة العربية/RTL في المخرجات المولَّدة (H,M)#
|
|
| المصدر |
مستخدم ناطق بالعربية |
| المحفّز |
ينزّل شهادة PDF مولَّدة تحتوي اسمه بالعربية |
| المكوّن |
pipeline توليد الـ PDF |
| البيئة |
تشغيل طبيعي |
| الاستجابة |
تُعرَض العربية بشكل صحيح |
| مقياس الاستجابة |
تشكيل صحيح للمحارف (الوصل السياقي)، وتخطيط ثنائي الاتجاه صحيح، ومحاذاة RTL صحيحة، وخطوط عربية مضمّنة. يُتحقَّق منه باختبارات الصور المرجعية (golden-image) على مجموعة أسماء عربية تشمل نصوصًا مختلطة عربية/لاتينية وأرقامًا عربية-هندية. |
هذا يستبعد عدة مكتبات PHP شائعة لتوليد PDF استبعادًا تامًا. إنه قيد حقيقي على اختيار التقنية، لا تفصيل عرض — فالشهادة ذات الحروف العربية المفكّكة المعكوسة غير صالحة للاستعمال وتبدو هاوية بشكل ظاهر لكل مستخدم سعودي.
QAS-LOC-02 — التوسّع الخليجي (M,M)#
|
|
| المصدر |
التوسّع التجاري (CON-12) |
| المحفّز |
إطلاق المنصة في دولة خليجية ثانية بعملة ونوعيات مستندات قانونية وقواعد ضريبية ونظام إقامة بيانات مختلفة |
| المكوّن |
النظام بأكمله |
| البيئة |
ما بعد الـ MVP |
| الاستجابة |
توسّع دون إعادة تصميم |
| مقياس الاستجابة |
الدولة بُعد من الدرجة الأولى صراحةً على المستأجرين والمستندات والتسعير والضريبة منذ اليوم الأول — لا مثبّتة برمجيًا على السعودية. مجموعات المستندات المطلوبة والعملة والقواعد الضريبية إعدادات لا كود. إضافة دولة لا تتطلب ترحيل مخطط. |
QAS-OPS-01 — قابلية التشغيل بفريق صغير (H,H) ⭐#
|
|
| المصدر |
واقع التشغيل في ظل CON-01 |
| المحفّز |
وقوع حادثة إنتاجية عند الساعة 02:00 |
| المكوّن |
قابلية المراقبة (observability) + أدوات النشر |
| البيئة |
حادثة |
| الاستجابة |
يشخّص مهندس المناوبة ويخفّف الأثر دون معرفة ضمنية عميقة |
| مقياس الاستجابة |
كل طلب يحمل معرّف ارتباط (correlation ID) يعبر الـ API وworkers الطوابير والنداءات الخارجية. زمن الاكتشاف < 5 دقائق عبر تنبيهات مبنية على SLOs المرئية للمستخدم (لا على رسوم CPU). rollback لأي نشر في < 10 دقائق بأمر واحد. توجد كتيبات تشغيل (runbooks) لأعلى 10 أنماط فشل متوقعة. |
(H,H) وغير قابل للتفاوض. CON-15 (Kubernetes) يرفع الأرضية التشغيلية. اختيار Kubernetes دون استثمار مقابل في الـ observability والأتمتة يحوّل خيارًا في البنية التحتية إلى ضريبة تشغيلية دائمة على فريق صغير — وهذه المفاضلة يجب أن تُدفع عن قصد لا أن تُكتشف لاحقًا.
QAS-OPS-02 — كفاءة التكلفة عند الاستغلال المنخفض (H,M)#
|
|
| المصدر |
حساسية الميزانية في CON-01 |
| المحفّز |
تعمل المنصة باستغلال منخفض في الأشهر التالية للإطلاق |
| المكوّن |
البنية التحتية |
| البيئة |
إنتاج مبكر |
| الاستجابة |
تكلفة بنية تحتية متناسبة مع الاستخدام الفعلي |
| مقياس الاستجابة |
تكلفة البنية التحتية الشهرية الأساسية عند حجم الإطلاق ضمن سقف متفق عليه (يُحدَّد بنموذج السعة/التكلفة). سعة الفيديو — وهي التكلفة المتغيرة المهيمنة — تتقلّص إلى ما يقارب الصفر عند الخمول. لا مكوّن دائم التشغيل مُحجَّم للذروة. |
الأدلة مقابل الافتراضات#
الأدلة (قابلة للتتبع إلى الوثائق المصدرية):
- onboarding مقيّد بالاعتماد، ستة أنواع جهات فاعلة، قدرات الوحدات —
SRC-BRD
- التصحيح الآلي لأسئلة MCQ + شهادة PDF تلقائية —
SRC-MOM REQ-05
- الإدراج المميّز (featured) يُرتَّب فوق العادي —
SRC-MOM REQ-06
- "مكالمة فيديو مستقرة من البداية إلى النهاية" —
SRC-MOM REQ-03
- أمن المستندات القانونية المرفوعة —
SRC-MOM NFR-1
- تفضيل التكلفة المنخفضة/المصادر المفتوحة —
SRC-BRD §12، SRC-MOM NFR-3
- قابلية التوسّع الخليجي دون إعادة تصميم —
SRC-BRD §3.7
الافتراضات (من عندي — تتطلب تأكيدًا):
| الافتراض |
الأساس |
إذا كان خاطئًا |
| SLO التوافرية 99.5 % في ساعات العمل كافٍ |
لا يوجد SLO مذكور في أي مكان في الوثائق |
هدف أعلى يغيّر طوبولوجيا HA لقاعدة البيانات وتكلفة multi-AZ تغييرًا جوهريًا |
| نسبة الذروة إلى المتوسط لتزامن الفيديو ≥ 5:1 |
تجمّع المواعيد المهنية في ساعات العمل |
يغيّر تحجيم سعة الفيديو ونموذج التكلفة |
| الشهادات تتطلب قابلية تحقق من طرف ثالث |
مستنتج من سياق سلامة الغذاء؛ غير مؤكَّد (OQ-09) |
ينزل QAS-INT-03 إلى (M,L) |
| الاستشارات لا تُسجَّل في الـ MVP |
غير مذكور في أي مصدر (OQ-08) |
التسجيل يضيف تخزينًا وتكلفة وموافقة ونطاق PDPL بشكل كبير |
| المحتوى ثنائي اللغة عربي/إنجليزي |
السوق السعودي + وجود BRD بالعربية (OQ-12) |
الاقتصار على العربية أو الإنجليزية يبسّط البحث ونمذجة المحتوى تبسيطًا جوهريًا |
| ~10 000 حساب / مئات الجلسات المتزامنة |
هدف نمو قدّمه المعماري |
تغيّر بمقدار رتبة عشرية يُبطل نموذج السعة |
| لا عائق ترخيصي من SAMA أمام حيازة الأموال وصرفها |
غير مُتحقَّق منه — عائق قانوني محتمل (OQ-10) |
قد يفرض طوبولوجيا دفع مختلفة كليًا |
المخاطر والمفاضلات#
| # |
المفاضلة |
الموقف المتخذ |
| 1 |
عزل المستأجرين مقابل سرعة التطوير |
الإنفاذ في طبقة الاستمرارية يضيف احتكاكًا ويقيّد حرية الاستعلام. مقبول — QAS-SEC-01 وجودي، والسرعة ليست كذلك. |
| 2 |
Kubernetes مقابل قابلية التشغيل في ظل CON-01 |
K8s (CON-15) يتعارض مع QAS-OPS-01 وQAS-OPS-02 بالنسبة لفريق صغير. مقبول بوصفه قرار المعماري، لكن الاستثمار في الـ observability والأتمتة الذي يفرضه صار الآن متطلبًا مُعلنًا، لا إضافة اختيارية. مُسجَّل كمخاطرة في ADR-0003. |
| 3 |
انضباط المعيارية مقابل سرعة الـ MVP |
إنفاذ CI في QAS-MOD-03 يبطئ التطوير المبكر. مقبول — نطاق المرحلة الثانية في CONF-04 يجعل تآكل الحدود أعلى أنماط الفشل المكلف احتمالًا. |
| 4 |
التوسّع التنبّئي للفيديو مقابل التعقيد |
التوسّع المدفوع بالتقويم أعقد من HPA التفاعلي لكنه أفضل قطعًا لحمل محجوز. موصى به لا مفروض — يُقاس كميًا في نموذج السعة أولًا. |
| 5 |
قابلية التحقق من الشهادة مقابل نطاق الـ MVP |
يضيف نقطة نهاية عامة وإدارة مفاتيح. موصى به رغم أنه غير مطلوب، لأن شهادة غير قابلة للتحقق تقوّض ادعاء القيمة المركزي للمنصة. قرار الجهة الراعية (OQ-09). |
| 6 |
نمذجة القوالب المهيكلة مقابل YAGNI |
QAS-MOD-04 يبني مخططًا لا يستخدمه الـ MVP. مبرَّر بـ SEAM-03 — لكنه أضعف القرارات الاستباقية وينبغي إعادة النظر فيه إذا عقّد نموذج بيانات الـ MVP بأكثر من قدر متواضع. |
ملخّص أولويات السيناريوهات#
| الأولوية |
السيناريوهات |
(H,H) — قائدة للمعمارية |
QAS-SEC-01، QAS-SEC-02، QAS-INT-01، QAS-AVL-01، QAS-PERF-02، QAS-SCL-01، QAS-SCL-02، QAS-MOD-01، QAS-MOD-02، QAS-MOD-03، QAS-OPS-01 |
(H,M)/(H,L) — مهمة، تقليدية |
QAS-SEC-03، QAS-SEC-04، QAS-INT-02، QAS-INT-03، QAS-AVL-02، QAS-AVL-03، QAS-PERF-01، QAS-CMP-01، QAS-CMP-02، QAS-LOC-01، QAS-OPS-02 |
(M,*) — تحت المراقبة |
QAS-AVL-04، QAS-SCL-03، QAS-MOD-04، QAS-LOC-02 |
الخطوات التالية الموصى بها#
architecture-risk-assessor على مجموعة (H,H) — وبخاصة توتر Kubernetes/قابلية التشغيل (#2) وقرار الدفع المؤجَّل (OQ-10).
tradeoff-analysis-writer لقراري البناء مقابل الشراء في الفيديو، واختيار محرك البحث، بمجرد صدور نتائج مسارات البحث.
adr-writer لكل قرار اتُّخذ فعلًا (الاستضافة، النمط، orchestration، المنافذ) حتى يُوثَّق المبرّر وهو طازج.