تمكن أحد المطورين من خفض رسوم الحوسبة لقاعدة بيانات Neon عديمة الخادم (serverless) عبر تمديد فاصل الاستطلاع (polling interval) من جانب العميل من 30 ثانية إلى 15 دقيقة. تسمح هذه الفجوة الزمنية الأطول لقاعدة البيانات بالبقاء في حالة خمول لفترة كافية لتصل إلى حالة الصفر (scale to zero)، مما يلغي رصيد الحوسبة الذي كان سيستهلكه الاستطلاع المستمر كل 30 ثانية.

تفرض Neon رسومًا مقابل كل ثانية يعمل فيها محرك الحوسبة الخاص بها. في الإعدادات النموذجية للأنظمة عديمة الخادم، فإن أي طلب — مهما كان ضئيلاً — يبقي المحرك في حالة نشاط. كانت لوحة التحكم الخاصة بالتلفاز التي صممها المؤلف تستعلم من قاعدة البيانات كل نصف دقيقة، على الرغم من أن البيانات المعروضة لا تتغير إلا عندما يقوم المستخدم بالمزامنة يدويًا أو عند بدء بث جديد. منع هذا النمط مجمع حوسبة Neon من الوصول إلى حالة الصفر التي توقف الفوترة، مما أدى إلى تضخم لوحة تكاليف Vercel بزيادات منتظمة.

لماذا كان الاستطلاع الأصلي مؤثراً

  • كانت لوحة التحكم عبارة عن مكون React من جانب العميل فقط، لذا كان كل متصفح يتصل بـ Neon مباشرة.
  • تربط تسعيرة Neon التكلفة بوقت الحوسبة النشط، وليس بعدد الطلبات، لذا فإن طلباً واحداً كل 30 ثانية كان يحافظ على رسوم أساسية مستمرة.
  • أظهرت مراقبة Vercel التي أجراها المؤلف وجود علاقة بين حركة المرور واستهلاك حوسبة Neon، مما أكد أن الاستطلاع كان يبقي قاعدة البيانات نشطة.

حلول بديلة لم تنجح

لم يساعد استخدام تقنية debounce سريعة — أي تأخير الطلب بعد آخر تفاعل للمستخدم — لأن المؤقت كان لا يزال يعمل كل 30 ثانية. حاولت أيضاً استخدام Vercel Edge Functions، لكن ذلك أضاف الكثير من التعقيد.

الحل البسيط

كان التغيير البرمجي الوحيد المطلوب هو استبدال ثابت (constant) يحدد فاصل التحديث:

  • من 30 ثانية5 دقائق
  • ثم 5 دقائق15 دقيقة

عند ضبط الفاصل على 15 دقيقة، تمتلك Neon وقتاً كافياً للتعرف على عدم النشاط وإيقاف تشغيل موارد الحوسبة الخاصة بها. تظل لوحة التحكم تعمل بكفاءة: حيث يرى المستخدمون أحدث البيانات عند التحديث يدوياً، كما يلتقط الاستطلاع التلقائي العرض الجديد من حين لآخر دون ضجيج مستمر.

لماذا نستمر في الاستطلاع من جانب العميل؟

  1. البساطة – لا حاجة لوظائف عديمة الخادم إضافية أو خطوات بناء جديدة.
  2. توقعات المستخدم – تتصرف لوحة التحكم بالفعل كتطبيق عميل؛ حيث يؤدي النقر اليدوي إلى تحديث فوري.
  3. التوافق مع نموذج التكلفة – تفرض Neon رسوماً مقابل كل ثانية حوسبة، وليس لكل طلب، لذا فإن تقليل التكرار يقلل الفاتورة مباشرة.

دروس للمطورين في الأنظمة عديمة الخادم

  • طابق وتيرة الاستطلاع مع وتيرة تحديث بياناتك في الواقع. إذا كانت مجموعة البيانات تتغير بضع مرات فقط في الساعة، فغالباً ما يكون الفاصل الزمني لمدة 15 دقيقة كافياً.
  • الاستطلاع المتكرر في البيئات عديمة الخادم هو محرك خفي للتكاليف؛ فطلب واحد إضافي كل دقيقة يمكن أن يمنع قاعدة البيانات من تقليص مواردها (scaling down).
  • يمكن للتعديلات الطفيفة في الإعدادات أن تحقق وفورات كبيرة دون الحاجة إلى إعادة هيكلة شاملة.

الخلاصة: أدى تغيير ثابت واحد إلى تحويل قاعدة بيانات كانت تعمل باستمرار إلى مكون عديم الخادم حقاً، مما قلل من نفقات الحوسبة مع الحفاظ على فائدة لوحة التحكم. بالنسبة لأي فريق يستخدم Neon أو خدمات حوسبة مماثلة تعتمد على نظام الدفع بالثانية، فإن مراجعة فواصل الاستطلاع هي مكسب سريع يستحق التجربة اليوم.