- हल्के deployment environment के लिए रीयल-टाइम version-controlled database
- prototyping, self-hosting, single-tenant ऐप्स, और backend तथा DB के बिना अत्यंत हल्के multi-tenant environment के लिए अनुकूलित
- अलग infrastructure की आवश्यकता नहीं → पूरा DB client पर चलता है, और server indexing की जरूरत नहीं होती
- offline-first संरचना → server डाउन होने पर भी client पर काम जारी रहता है और recovery संभव है
- edge-native → अधिकांश processing client पर होती है, जिससे server load न्यूनतम रहता है
- रीयल-टाइम sync समर्थन → client और server state अपने-आप sync रहती है
- initialization के समय
peers में replicas का location सेट करके server cluster को आसानी से configure किया जा सकता है
- sync protocol का उपयोग करके server-to-server sync का समर्थन करता है, और कई server जोड़ने पर भी बिना code बदले scale किया जा सकता है
- React Hooks का उपयोग
- GoatDB के React Hooks एक पूर्ण state management solution प्रदान करते हैं, और synchronous (mutable) state modification संभव बनाते हैं
- उदाहरण के लिए,
task.set('done', true) जैसे बदलाव तुरंत memory में reflect हो जाते हैं, और GoatDB अपने-आप background में diffing, local storage commit, server sync, conflict resolution संभालता है
- सुरक्षा मॉडल
- प्रत्येक node public/private key pair बनाए रखता है, और private key कभी बाहर उजागर नहीं होती
- सभी commits digitally signed होते हैं, इसलिए छेड़छाड़ किए गए बदलाव अपने-आप reject हो जाते हैं
- custom permission policies के जरिए data access control किया जा सकता है
- conflict resolution का तरीका
- three-way merge : बदलाव टकराने पर उन्हें अपने-आप merge करके व्यवस्थित किया जाता है
- Logoot-आधारित continuous ID allocation : data में insertion/deletion conflict को रोकने के लिए unique identifier system लागू किया गया है
उदाहरण प्रोजेक्ट
- Todo → self-hosting के लिए न्यूनतम modern todo list
- EdgeChat → पूरी तरह browser-आधारित ChatGPT-style interface
- Ovvio → 2024 से GoatDB का उपयोग कर रहा productivity tool
1 टिप्पणियां
GOAT.. डरावना