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