สวัสดีครับ ขอแนะนำ replited เครื่องมือทำสำเนา SQLite ที่เขียนด้วย Rust

มันถูกสร้างขึ้นมาเพื่อแก้ปัญหาใหญ่ที่สุดเวลาใช้ SQLite ในสภาพแวดล้อมแบบ serverless หรือ edge นั่นคือปัญหา "การป้องกันข้อมูลสูญหาย" และ "การสำรองข้อมูล" แม้ว่าจะมีเครื่องมือที่ยอดเยี่ยมอยู่แล้วอย่าง Litestream แต่ด้วยความต้องการที่จะใช้งาน read replica ผ่านการคัดลอกแบบสตรีมมิง จึงได้ลองเพิ่มฟีเจอร์เข้าไปบนผลงานที่ผู้อื่นสร้างไว้

replited เลือกใช้ Apache OpenDAL เพื่อทำ abstraction ของ storage layer ด้วยเหตุนี้ จึงไม่ใช่แค่ S3 เท่านั้น แต่ยังสามารถทำสำเนา WAL (Write-Ahead Log) ของ SQLite แบบเรียลไทม์ไปยัง storage แทบทุกประเภทที่ OpenDAL รองรับ เช่น FTP, WebDAV, Google Drive, Dropbox, IPFS เป็นต้น

คุณสมบัติหลัก:

  • สร้างบน Rust & OpenDAL: รับประกัน memory safety และทำงานได้เบาด้วยไบนารีไฟล์เดียว
  • รองรับแบ็กเอนด์หลากหลาย: ตั้งแต่ cloud storage อย่าง AWS S3, GCS, Azure Blob ไปจนถึง FTP/SFTP และ WebDAV ทั่วไป
  • ทำสำเนาแบบเรียลไทม์: คล้าย Litestream โดยจับ WAL frame เพื่อให้บรรลุเป้าหมาย RPO (Recovery Point Objective) ระดับไม่กี่วินาที
  • ตั้งค่าง่าย: สามารถระบุแบ็กเอนด์ได้ผ่านตัวแปรสภาพแวดล้อมหรือไฟล์คอนฟิก โดยไม่ต้องมีการตั้งค่าที่ซับซ้อน

หวังว่าจะเป็นประโยชน์สำหรับผู้ที่อยากลดต้นทุนการดูแล RDBMS ในโปรเจกต์ส่วนตัวหรือโปรดักชันขนาดเล็ก พร้อมกับยังคงรักษาความปลอดภัยของข้อมูลไว้ได้

GitHub repository:
https://github.com/mrchypark/replited

ยังไม่มีความคิดเห็น

ยังไม่มีความคิดเห็น