Zero؛ موتور سینک عمومی برای وب
خلاصهٔ کاملتر
صفحهٔ معرفی Zero از Rocicorp توضیح میده که موتورهای سینک (sync engines) با دانلود کردن داده روی کلاینت قبل از نیاز، یه تجربهٔ کاربری آنی میسازن؛ خوندن و نوشتن بهصورت محلی انجام میشه و تغییرات تو پسزمینه سینک میشن. به گفتهٔ سازندهها این ایدهٔ قشنگیه که بعضی از بهترین نرمافزارهای دنیا مثل Linear، Figma، Superhuman و Dropbox باهاش ساخته شدن.
ولی یه گیر هست که باعث شده این اپها هنوز کمیاب باشن: اپها معمولاً دادهشون اونقدر زیاده که نمیشه از اول همهش رو دانلود کرد، و مجوزهای پیچیدهای هم دارن. سینک کردن یه بلوک ثابت از داده سادهست، ولی سینک کردن دقیقاً همون برشی که کاربر میخواد و بهش دسترسی داره خیلی سختتره. Rocicorp میگه Zero رو ساخته تا این مشکل رو بهصورت عمومی حل کنه.
Zero دو بخش داره: zero-client و zero-cache. بخش zero-cache تو کلاد اجرا میشه و یه نسخهٔ فقطخواندنی از دیتابیس Postgres شما نگه میداره. بخش zero-client به اپ شما لینک میشه و یه استور سمت کلاینت از ردیفهایی که اخیراً استفاده شدن نگه میداره. کوئریها اول روی کلاینت اجرا میشن و نتیجهٔ محلی رو فوری برمیگردونن، و همزمان به سرور هم فرستاده میشن تا نتیجهٔ معتبر رو بهصورت غیرهمزمان بده. نتیجهٔ سرور هم سمت کلاینت ذخیره میشه تا کوئریهای بعدی فوری جواب بگیرن.
به گفتهٔ Rocicorp، اجرای کارآمد و افزایشی (incremental) کوئریهای پیچیده رو یه موتور کوئری استریمی جدید به اسم ZQL ممکن کرده که مخصوص Zero ساخته شده. این معماری اجازه میده دقیقاً همون دادهای که لازم داری، هر وقت لازم داری سینک بشه — یعنی UI آنی بدون اینکه مجبور باشی کل دنیا رو از قبل لود کنی.
از ویژگیهاش میشه به اینها اشاره کرد: خوندن آنی (کوئریها همیشه اول کلاینت رو میزنن و دادهٔ محلی رو تو فریم بعدی برمیگردونن)، نوشتن آنی، واکنشپذیری خودکار (وقتی داده روی سرور عوض میشه — حتی از کلاینتهای غیر-Zero — کوئریهای متأثر خودکار آپدیت میشن)، استارتآپ سریع، و اقتدار سرور (همهٔ خوندن و نوشتن از کد شما روی سرور شما عبور میکنه تا کنترل کامل روی مجوزها و منطق کسبوکار داشته باشی). نکتهٔ مهم اینه که Zero با دیتابیسهای معمولی Postgres و اسکیماها و APIهای معمولی کار میکنه.
از نظر قیمتگذاری، Zero متنباز و کاملاً قابل میزبانی خودیه. یه سرویس کاملاً مدیریتشده هم ارائه میدن که میتونه روی سرورهای خودت یا اونها اجرا بشه؛ پلن Hobby ماهی ۳۰ دلار، پلن Professional ماهی ۳۰۰ دلار و گزینهٔ Bring Your Own Cloud از ماهی ۱۰۰۰ دلار بهعلاوهٔ هزینهٔ AWS شروع میشه. تو دموی Gigabugs هم یه ایشوترکر با ۱.۲ میلیون ردیف رو نشون میدن که تعاملهاش آنیه و کمتر از ۲ ثانیه لود میشه.
نکات کلیدی:
- Zero یه موتور سینک عمومی از Rocicorp برای ساختن اپهای وب خیلی سریعه
- مشکلی که حل میکنه: سینک فقط همون برش از داده که کاربر میخواد و بهش دسترسی داره
- دو بخش zero-client (استور سمت کلاینت) و zero-cache (رپلیکای Postgres تو کلاد)
- موتور کوئری استریمی ZQL اجرای افزایشی کوئریهای پیچیده رو ممکن میکنه
- روی Postgres معمولی کار میکنه، متنباز و قابل میزبانی خودیه




