celld: اجرای Durable Objects روی سرور خودت
خلاصهٔ کاملتر
celld یه دیمن متنبازه از تیم Deno که بهت اجازه میده Cloudflare Workers و Durable Objects رو روی ماشینهای خودت اجرا کنی. ایدهٔ اصلیش اینه که هر آبجکت — یا به تعبیر خودشون هر «سل» — یه دیتابیس SQLite مستقل با یه اسم مشخصه که مدام روی یه باکت سازگار با S3 مال خودت رپلیکیت میشه.
جالبترین بخش معماریش نبودِ کنترلپلنه: نودها فقط از طریق همون باکت با هم هماهنگ میشن. هر نود V8 رو داخل خودش داره و باندلهای Wrangler رو اجرا میکنه، و مالکیت هر سل با compare-and-swap روی آبجکتاستوریج تضمین میشه؛ یعنی هیچ پروتکل عضویت، تشخیصدهندهٔ خطا یا سرویس اجماعی لازم نیست. تو مستندات پروژه اومده که باکت منبع حقیقتِ پایداره و نودها دورریختنیان: وقتی یه سل جابهجا میشه یا از خواب بیدار میشه، مالک جدیدش دیتابیسشو از باکت برمیگردونه و ادامه میده.
چون هر سل دیتابیس کوچیک خودشه، اپلیکیشن از پایه شارد شده و اون رقابت روی یه دیتابیس مشترک و شعاع خرابی بزرگ اصلاً به وجود نمیاد. سلهای بیکار هم تقریباً تا هیچی هایبرنیت میشن. برای بار سنگین هم میشه سقف تعداد سل ساکن و یه حد پایین تعیین کرد تا نودِ زیر فشار، سلهای کماستفاده رو امن آزاد کنه؛ روی لینوکس آستانهٔ حافظه و CPU هم اضافه میشه. سلهایی که کار فعال یا WebSocket زنده دارن آزاد نمیشن.
یه نکتهٔ عملیاتی مهم اینه که ترافیک بین نودها TLS نداره، پس باید روی شبکهٔ خصوصی مطمئن یا یه اورلی رمزنگاریشده مثل WireGuard یا Tailscale اجرا شه؛ آیپی عمومی هم جز با یه فلگ صریح قبول نمیشه. درخواستهای بین نودی با HMAC و یه راز مشترک که داخل باکت ساخته میشه احراز هویت میشن، برای همین دسترسی به باکت عملاً یعنی دسترسی مدیر کل فلیت. پروژه Apache-2.0 هست، ولی PRها بستهان و تیم فقط پچ ایمیلی میپذیره — دلیلی که خودشون میگن حجم تغییرات کمزمینهٔ تولیدشده با ایجنتهاست.
نکات کلیدی:
- celld یه دیمن متنباز از Deno برای اجرای Workers و Durable Objects روی زیرساخت خودت
- هر سل یه دیتابیس SQLite مستقله که روی باکت سازگار با S3 رپلیکیت میشه
- هماهنگی فقط از راه باکت و با compare-and-swap؛ بدون کنترلپلن و بدون اجماع
- شاردینگ ذاتی، هایبرنیت شدن سلهای بیکار و آزادسازی سلهای کماستفاده زیر فشار
- ترافیک بین نودها TLS نداره و باید روی شبکهٔ خصوصی یا WireGuard/Tailscale بشینه
- لایسنس Apache-2.0، ولی PR بستهست و پچها ایمیلی پذیرفته میشن




