انقطاع الكهرباء مُدخَل تصميميّ لا عذر
البرمجيات المكتوبة في أماكن أخرى تفترض أن الكهرباء لا تنقطع. أما التي تعمل في العراق فلا تستطيع. التصميم للانقطاع ليس تشاؤمًا، بل مجرّد دقّة.
تُكتب معظم البرمجيات على افتراض صامت بأن الكهرباء والشبكة موجودتان دائمًا. وهو افتراض معقول في المكان الذي كُتبت فيه. لكنه خاطئ هنا، والبناء وكأنه صحيح هو كيف تفشل الأنظمة في اللحظة التي يُحتاج إليها فيها بالضبط.
في العراق، انقطاع الكهرباء ليس حادثًا. إنه يوم ثلاثاء عادي. والتصميم له ليس هندسة دفاعية — بل وصف للبيئة بدقّة وبناء للبيئة التي لديك فعلًا.
«العمل دون إنترنت أولًا» يعني أن القرارات تُتّخذ محليًا
الفكرة الجوهرية بسيطة: الشيء الذي أمام المستخدم ينبغي أن يستطيع اتخاذ قراره دون أن يسأل خادمًا قد لا يُجيب. وحين تعود الشبكة، يُوفّق. وحين لا تعود، يظلّ يعمل.
جهاز التحكم بالأبواب لدينا مبنيّ بهذه الطريقة تمامًا. يقرّر فتح الباب عند الباب — رموز الحجز، وبطاقات RFID، والقواعد المحلية — بلا رحلة إلى السحابة. وحين يعود الاتصال، يزامن سجلّه إلى الأعلى. انقطاع الشبكة يعني أن التقارير تتأخّر قليلًا، لا أن يُحبَس أحدهم خارج مبنى يحقّ له دخوله.
كيف يبدو «التصميم للانقطاع»
- سلطة محلية. يحمل الجهاز أو التطبيق حالةً كافية للتصرّف وحده طوال النافذة التي يحتاجها. يطلب من الخادم أن يلحق به، لا أن يأذن له.
- الطابور وإعادة المحاولة. الإجراءات المتّخذة دون اتصال تُسجَّل وتُعاد عند عودة الرابط — بلا تكرار للأثر، كي لا تُحتسَب المحاولة مرّتين.
- استمرارية الطاقة. مصدر طاقة غير منقطعة أو بطارية بحجم الفجوة الحقيقية، كي يكون الانقطاع توقّفًا لا إعادة تشغيل في منتصف معاملة.
- حالة صادقة. تقول الواجهة بوضوح متى تعمل من بيانات محلية، فلا يخلط أحد بين «آخر مزامنة قبل ساعة» و«مباشر».
دقّة، لا تشاؤم
يُقرأ التصميم للانقطاع أحيانًا كتوقّعٍ للأسوأ. والحقيقة عكس ذلك — إنه رفضٌ للتظاهر بأن البيئة شيء ليست هي. النظام الذي يفترض كهرباء مثالية وشبكة مثالية في مكانٍ لا يملك أيًّا منهما ليس متفائلًا، بل سيكون معطّلًا حين يهم الأمر.
نحن نبني للشبكة التي لدينا. لذلك تظلّ الأشياء التي نطلقها تعمل حين لا تعمل الكهرباء.