عن المشروع

Electric هو محرك مزامنة مفتوح المصدر لـ Postgres، يوصف بأنه مزامنة فورية لـ Postgres ويُطرح كأساس لبرمجيات حديثة سريعة ووكلاء ذكاء اصطناعي يعملون على بيانات محلية حية. وهو يركز على مسار القراءة: مزامنة البيانات من Postgres إلى مستهلكين اعتباطيين بدلاً من الكتابة مرة أخرى إلى قاعدة البيانات. يعالج المشروع مشكلات المزامنة الشائعة مثل النسخ الجزئي والتوزيع وتسليم البيانات، حتى لا يضطر المطورون إلى بناء طبقة المزامنة الخاصة بهم. يُكشف بروتوكول المزامنة الأساسي كواجهة HTTP API منخفضة المستوى، وتشير الوثائق إلى أنه يمكن دمجها مع شبكات CDN لتسليم بيانات قابل للتوسع. يُضبط النسخ الجزئي باستخدام Shapes، التي تحدد أي مجموعة فرعية من البيانات تتم مزامنتها. يمكن للمستهلكين استخدام HTTP API مباشرة أو العمل عبر مكتبات العملاء وتكاملات الأطر، بما في ذلك عميل TypeScript وخطاف React يُسمى useShape. كما توجد حزمة عميل Elixir في المستودع. يتطلب البدء قاعدة بيانات Postgres مع تمكين النسخ المنطقي، ثم تشغيل Electric أمامها متصلاً عبر DATABASE_URL. يعرض README أمر Docker Compose من جذر المستودع لتشغيل الحزمة، يليه طلب curl إلى نقطة النهاية /v1/shape لبدء مزامنة جدول، ومثال React قصير يستخدم useShape مع معاملات table وwhere. تُعرَّف HTTP API في مواصفة OpenAPI مخزنة في المستودع. يتضمن Electric أيضاً Phoenix LiveDashboard اختيارياً للمراقبة الفورية لمقاييس VM ومعلومات العمليات وجداول ETS، ويُفعَّل بتعيين متغير بيئة لمنفذ لوحة المعلومات. يحذر README صراحةً من أن نقطة نهاية لوحة المعلومات هذه غير مصادَق عليها ويجب تقييدها في الإنتاج. تستخدم التطوير أداة asdf لإدارة إصدارات Elixir وErlang وNode.js، مع تعليمات إعداد لنظام macOS. يحتوي المستودع على مجموعات اختبار لمكونات Elixir وTypeScript، مع متطلبات مسبقة تشمل Docker Compose Postgres مهيأ للنسخ المنطقي. وتُوثَّق الأوامر لتشغيل اختبارات خدمة المزامنة وعميل Elixir، واختبارات حزم TypeScript، وتقارير التغطية. المشروع مرخص بموجب Apache 2.0 ويوفر Discord مجتمعي للدعم.