การพัฒนา MongoDB Drop-in Replacement ด้วย Rust + SQLite (ตอนที่ 1)

ในวงการพัฒนาซอฟต์แวร์ คำว่า Drop-in Replacement หมายถึงการสร้างซอฟต์แวร์ใหม่ที่สามารถแทนที่ซอฟต์แวร์เดิมได้โดยไม่ต้องแก้ไขโค้ดหรือระบบที่เรียกใช้งาน

enter image description here

ทำไมต้องพัฒนา Drop-in Replacement เอง?

  1. Performance – ซอฟต์แวร์เดิมอาจช้าหรือกินทรัพยากรมากเกินไปใน workload ของคุณ
  2. License หรือต้นทุน – ซอฟต์แวร์เดิมอาจเป็น proprietary หรือมีค่าใช้จ่ายสูงเกินไป
  3. ข้อจำกัดทางเทคโนโลยี – เช่น รองรับเฉพาะฮาร์ดแวร์บางตัว หรือไม่สามารถปรับแต่งให้เข้ากับ stack
    ของคุณได้
  4. ความยืดหยุ่นในการบำรุงรักษา – ต้องการ dependency น้อยลง หรือควบคุมทุกบรรทัดของโค้ดได้เอง
  5. เพิ่มฟีเจอร์เฉพาะทาง – โดยไม่ทำลายความเข้ากันได้กับระบบเดิม
  6. Lightweight deployment – ต้องการให้รันได้บน edge device, ฝังใน binary เดียว, หรือไม่ต้องมี service แยก

ตัวอย่าง: การพัฒนา MongoDB Drop-in Replacement ด้วย Wire Protocol + Rust + SQLite

สมมติว่าคุณต้องการสร้าง drop-in replacement สำหรับ MongoDB เพราะ:

  • MongoDB original กิน RAM และ disk space มากเกินไปสำหรับ embedded device หรือ CI environment
  • License ของ MongoDB (SSPL) ไม่เหมาะกับการแจกจ่ายในบางรูปแบบ
  • คุณต้องการ database engine ที่เป็น single file, ไม่ต้องมี server process แยก, backup แค่ copy ไฟล์เดียว
  • คุณรักในความเรียบง่ายของ SQLite และประสิทธิภาพของ Rust

...อ่านต่อในตอนต่อไป


ภาพประกอบ: 1