इस प्रोजेक्ट के बारे में

इलेक्ट्रिक पोस्टग्रेस के लिए एक ओपन-सोर्स सिंक इंजन है, जिसे पोस्टग्रेस के लिए रीयल-टाइम सिंक बताया गया है और यह तेज़, आधुनिक सॉफ़्टवेयर तथा लाइव लोकल डेटा पर चलने वाले AI एजेंट्स के लिए आधार के रूप में प्रस्तुत किया गया है। यह रीड पाथ पर केंद्रित है: डेटाबेस में वापस लिखने के बजाय पोस्टग्रेस से डेटा को विभिन्न उपभोक्ताओं तक सिंक करना। यह प्रोजेक्ट आंशिक प्रतिकृति, फैन-आउट और डेटा डिलीवरी जैसी सामान्य सिंक समस्याओं का समाधान करता है, ताकि डेवलपर्स को अपनी खुद की सिंक लेयर बनाने की जरूरत न पड़े। मुख्य सिंक प्रोटोकॉल को एक लो-लेवल HTTP API के रूप में उजागर किया गया है, जिसके बारे में दस्तावेज़ कहते हैं कि यह स्केलेबल डेटा डिलीवरी के लिए CDN के साथ एकीकृत हो सकता है। आंशिक प्रतिकृति को Shapes का उपयोग करके कॉन्फ़िगर किया जाता है, जो परिभाषित करते हैं कि डेटा का कौन-सा उपसमूह सिंक किया जाएगा। उपभोक्ता HTTP API का सीधे उपयोग कर सकते हैं या क्लाइंट लाइब्रेरी और फ्रेमवर्क एकीकरण के माध्यम से काम कर सकते हैं, जिनमें एक TypeScript क्लाइंट और useShape नामक एक React हुक शामिल है। रिपॉज़िटरी में एक Elixir क्लाइंट पैकेज भी मौजूद है। शुरुआत करने के लिए लॉजिकल रेप्लिकेशन सक्षम वाला एक पोस्टग्रेस डेटाबेस आवश्यक है, फिर DATABASE_URL के माध्यम से जुड़े हुए उसके सामने इलेक्ट्रिक चलाएं। README रिपॉज़िटरी रूट से स्टैक शुरू करने के लिए एक Docker Compose कमांड दिखाता है, इसके बाद किसी टेबल को सिंक करना शुरू करने के लिए /v1/shape एंडपॉइंट पर एक curl अनुरोध, और table तथा where पैरामीटर के साथ useShape का उपयोग करने वाला एक छोटा React उदाहरण। HTTP API को रिपॉज़िटरी में संग्रहीत एक OpenAPI स्पेसिफिकेशन में परिभाषित किया गया है। इलेक्ट्रिक में VM मेट्रिक्स, प्रोसेस जानकारी और ETS टेबल की रीयल-टाइम निगरानी के लिए एक वैकल्पिक Phoenix LiveDashboard भी शामिल है, जिसे डैशबोर्ड पोर्ट के लिए एक एनवायरनमेंट वेरिएबल सेट करके सक्षम किया जाता है। README स्पष्ट रूप से चेतावनी देता है कि यह डैशबोर्ड एंडपॉइंट अनऑथेंटिकेटेड है और इसे प्रोडक्शन में प्रतिबंधित किया जाना चाहिए। डेवलपमेंट में Elixir, Erlang और Node.js संस्करणों को प्रबंधित करने के लिए asdf का उपयोग किया जाता है, साथ में macOS के लिए सेटअप निर्देश दिए गए हैं। रिपॉज़िटरी में Elixir और TypeScript दोनों घटकों के लिए टेस्ट सूट शामिल हैं, जिनकी पूर्वापेक्षाओं में लॉजिकल रेप्लिकेशन के लिए कॉन्फ़िगर किया गया एक Docker Compose पोस्टग्रेस शामिल है। Elixir सिंक सेवा और क्लाइंट टेस्ट, TypeScript पैकेज टेस्ट, तथा कवरेज रिपोर्ट चलाने के लिए कमांड दस्तावेज़ित हैं। यह प्रोजेक्ट Apache 2.0 के अंतर्गत लाइसेंस प्राप्त है और सहायता के लिए एक कम्युनिटी Discord प्रदान करता है।