- ฐานข้อมูลแบบจัดการเวอร์ชันเรียลไทม์ สำหรับสภาพแวดล้อมการดีพลอยที่มีน้ำหนักเบา
- เหมาะที่สุดสำหรับการทำต้นแบบ, การโฮสต์เอง, แอปแบบซิงเกิลเทนเนนต์ (Single-Tenant) และสภาพแวดล้อมแบบมัลติเทนเนนต์ (Multi-Tenant) ที่เบามากซึ่ง ไม่มีทั้งแบ็กเอนด์และ DB
- ไม่ต้องมีอินฟราสตรักเจอร์แยกต่างหาก → รัน DB ทั้งหมดบนไคลเอนต์ และไม่ต้องมีการทำดัชนีบนเซิร์ฟเวอร์
- สถาปัตยกรรมแบบ Offline-First → ต่อให้เซิร์ฟเวอร์ล่มก็ยังทำงานบนไคลเอนต์ต่อได้และกู้คืนได้
- Edge-Native → ประมวลผลส่วนใหญ่บนไคลเอนต์เพื่อลดภาระของเซิร์ฟเวอร์ให้น้อยที่สุด
- รองรับการซิงก์แบบเรียลไทม์ → ซิงก์สถานะของไคลเอนต์และเซิร์ฟเวอร์โดยอัตโนมัติ
- ตอนเริ่มต้นสามารถกำหนดตำแหน่งของรีพลิกาใน
peers เพื่อเซ็ตอัปเซิร์ฟเวอร์คลัสเตอร์ได้ง่าย
- รองรับการซิงก์ระหว่างเซิร์ฟเวอร์ผ่านโปรโตคอลการซิงก์ และสามารถขยายด้วยการเพิ่มหลายเซิร์ฟเวอร์ได้โดยไม่ต้องแก้โค้ด
- ใช้ React Hooks
- React Hooks ของ GoatDB มอบ โซลูชันจัดการสถานะแบบครบถ้วน และสามารถแก้ไขสถานะแบบซิงโครนัส (mutable) ได้
- ตัวอย่างเช่น การเปลี่ยนแปลงอย่าง
task.set('done', true) จะสะท้อนในหน่วยความจำทันที และ GoatDB จะจัดการ การคำนวณความต่าง (diffing), การคอมมิตลง local storage, การซิงก์กับเซิร์ฟเวอร์, การแก้ไขความขัดแย้ง ในเบื้องหลังโดยอัตโนมัติ
- โมเดลความปลอดภัย
- แต่ละโหนดจะเก็บคู่กุญแจสาธารณะ/ส่วนตัว และกุญแจส่วนตัวจะไม่ถูกเปิดเผยออกไปภายนอกเด็ดขาด
- ทุกคอมมิตจะถูกลงลายเซ็นดิจิทัล จึงปฏิเสธการเปลี่ยนแปลงที่ถูกดัดแปลงโดยอัตโนมัติ
- ควบคุมการเข้าถึงข้อมูลได้ผ่านนโยบายสิทธิ์แบบกำหนดเอง
- วิธีการแก้ไขความขัดแย้ง
- การรวมแบบสามทาง (Three-Way Merge) : หากมีความขัดแย้งของการเปลี่ยนแปลง จะรวมอัตโนมัติเพื่อจัดการให้เรียบร้อย
- การกำหนด ID แบบต่อเนื่องด้วยวิธี Logoot : ใช้ระบบตัวระบุเฉพาะเพื่อป้องกันความขัดแย้งจากการแทรก/ลบภายในข้อมูล
โปรเจ็กต์ตัวอย่าง
- Todo → ทูดูลิสต์สมัยใหม่แบบมินิมัลสำหรับการโฮสต์เอง
- EdgeChat → อินเทอร์เฟซสไตล์ ChatGPT ที่ทำงานบนเบราว์เซอร์อย่างสมบูรณ์
- Ovvio → เครื่องมือเพิ่มประสิทธิภาพการทำงานที่ใช้ GoatDB มาตั้งแต่ปี 2024
1 ความคิดเห็น
GOAT..โหดจัด