تصميم معمارية Laravel SaaS قابلة للتوسع
أغلب منتجات Laravel SaaS تبدأ بمستأجر واحد ثم جدول مستأجرين. ينهار الأمر عندما تتسرب المهام والكاش والملفات بين العملاء. العزل قرار منتج لا وسيط يُضاف لاحقاً.
العزل هو المنتج
أعتبر العزل حدوداً صارمة: البيانات والطوابير والتخزين والإعداد. عمود tenant_id لا يكفي إن رأت مهمة الصف الصفوف الخطأ.
على منصات مثل BROC ServiceOS السؤال ليس الحزمة بل ماذا يحدث إذا شغلت فاتورة المستأجر أ أثناء استعادة ب.
الطوابير والكاش والملفات
Horizon وRedis وS3 ليست زينة. كل مهمة تحمل المستأجر. كل مفتاح كاش له نطاق. كل رفع له مالك.
إن تجاهلت هذا فستُصلح بيانات «عشوائية» في الإنتاج. ليست عشوائية. إنها حدود ناقصة.
الفوترة بجانب المستأجر
الخطط يجب أن تطابق حدوداً يفرضها المنتج فعلاً: مقاعد ومواقع وحجم API لا قائمة ميزات في PDF. الفوترة بجانب سجل المستأجر.
من طنجة أسلّم Laravel SaaS هكذا لأن إعادة الكتابة بعد العميل الثاني أغلى من نموذج عزل واضح من اليوم الأول.
خلاصة
- حدّد العزل قبل اختيار الحزم.
- المهام والكاش والملفات يجب أن تحمل المستأجر.
- فوتر حدوداً تفرضها فعلاً.
أسئلة شائعة
هل أستخدم حزمة متعددة المستأجرين من اليوم الأول؟
استخدم حزمة بعد أن تصف العزل بكلماتك: قاعدة وطوابير وملفات. الحزمة لا تخترع حدوداً لم تصممها.
قاعدة واحدة أم قاعدة لكل مستأجر؟
ابدأ بقاعدة واحدة ونطاق صارم. افصل لاحقاً إن فرض الامتثال أو الاستعادة أو الجيران الضاجّون ذلك.