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

ทำไมต้องพัฒนา Drop-in Replacement เอง?
- Performance – ซอฟต์แวร์เดิมอาจช้าหรือกินทรัพยากรมากเกินไปใน workload ของคุณ
- License หรือต้นทุน – ซอฟต์แวร์เดิมอาจเป็น proprietary หรือมีค่าใช้จ่ายสูงเกินไป
- ข้อจำกัดทางเทคโนโลยี – เช่น รองรับเฉพาะฮาร์ดแวร์บางตัว หรือไม่สามารถปรับแต่งให้เข้ากับ stack
ของคุณได้ - ความยืดหยุ่นในการบำรุงรักษา – ต้องการ dependency น้อยลง หรือควบคุมทุกบรรทัดของโค้ดได้เอง
- เพิ่มฟีเจอร์เฉพาะทาง – โดยไม่ทำลายความเข้ากันได้กับระบบเดิม
- 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