برمجياتقراءة دقيقتين

مشروع celld من denoland يقدم نسخة مفتوحة من Cloudflare Workers وDurable Objects تعمل على خوادم خاصة

المغزى

حين يكون للمكوّن الأساسي في المنتج مزوّد واحد، يصبح سعره ومكانه ومصيره قرار ذلك المزوّد، وظهور تطبيق مفتوح له يعيد جزءًا من هذا القرار إلى من يبني عليه.

أطلقت denoland مشروع celld، وهو تطبيق مفتوح المصدر يمكن استضافته ذاتيًا لـ Cloudflare Workers وDurable Objects. ويقف وراء المشروع Ryan Dahl، مبتكر Node.js ثم Deno. ويصدر المشروع برخصة Apache 2.0، وتتابعت إصداراته سريعًا: 0.0.1 في 2 أغسطس، و0.1.0 في 5 أغسطس، و0.2.0 في 12 أغسطس 2026.

والـ Durable Object مكوّن يعمل في نسخة واحدة فقط، وله مساحة تخزين خاصة به. وأي طلب يحمل المفتاح نفسه يصل إلى النسخة نفسها بالضبط. ولذلك يناسب غرف المحادثة والعدادات والوكلاء الذين يحتفظون بحالة مستمرة. وكانت المشكلة أنه متاح لدى Cloudflare وحدها، فمن يبني عليه يصعب عليه الانتقال.

ويحقق celld الشيء نفسه بطريقة مختلفة. فكل وحدة (cell) تملك قاعدة بيانات SQLite خاصة بها، تُنسخ باستمرار عبر صيغة LTX إلى bucket متوافق مع S3 أو GCS. والـ bucket نفسه هو ما يحدد مالك كل وحدة، عبر عملية compare-and-swap: أول من يكتب يصبح المالك.

وبذلك لا يحتاج النظام إلى control plane، ولا إلى Raft، ولا إلى خدمة consensus. فالـ bucket يؤدي دورين معًا: التخزين والتنسيق. ولأن الحالة كلها محفوظة فيه، يمكن للوحدة أن تعمل على جهاز آخر إذا توقف الجهاز الأول.

ويستخدم المشروع محرك V8 لتشغيل حزم Wrangler، مع الحفاظ على واجهات Workers وملفات الإعداد نفسها دون تعديل.

والأهمية هنا ليست تقنية فقط. فالمنتج الذي يُبنى على مكوّن لا يقدمه إلا مزوّد واحد يظل مرتبطًا بقرارات هذا المزوّد في التسعير ومواقع التشغيل والاستمرار. ووجود بديل مفتوح يغيّر حسابات الفرق التي تحتاج إلى تشغيل خدماتها داخل منطقتها أو على بنيتها الخاصة. ويبقى أداء المشروع في بيئات إنتاج حقيقية، مقارنة بـ Cloudflare، غير معروف بعد، فهو ما زال في إصداراته الأولى.

المصادر

  1. مستودع celld على GitHub
  2. تغطية The Register
  3. توثيق Cloudflare لـ Durable Objects
  4. موقع Deno

من عدد الجمعة 1 ربيع الأول - 14 أغسطس

أخبار ذات صلة

أخبار الجمعة 1 ربيع الأول - 14 أغسطس