- SpacetimeDB เป็นระบบที่รวมฐานข้อมูลและความสามารถฝั่งเซิร์ฟเวอร์เข้าไว้ด้วยกัน
- แทนที่จะมีเว็บเซิร์ฟเวอร์หรือเกมเซิร์ฟเวอร์แบบดั้งเดิมแยกต่างหาก ไคลเอนต์สามารถเชื่อมต่อกับฐานข้อมูลโดยตรงเพื่อรันลอจิกของแอปพลิเคชัน
- สามารถอัปโหลดลอจิกของแอปขึ้นสู่ฐานข้อมูลได้โดยตรง ผ่าน stored procedure ในรูปแบบ "module" ที่เขียนด้วย Rust
- สามารถดีพลอยทั้งแอปพลิเคชันได้ด้วย Rust binary เดียว และไม่จำเป็นต้องมี DevOps, คอนเทนเนอร์, เซิร์ฟเวอร์ หรือไมโครเซอร์วิส
คุณสมบัติหลัก
- เป็นแนวคิดที่คล้าย smart contract แต่ไม่เกี่ยวข้องกับบล็อกเชน
- เร็วกว่าระบบ smart contract แบบเดิมอย่างมาก
- แบ็กเอนด์ของเกม MMORPG อย่าง BitCraft Online สร้างขึ้นด้วย SpacetimeDB เพียงตัวเดียว
- ทุกองค์ประกอบภายในเกมถูกประมวลผลแบบเรียลไทม์ในฐานข้อมูลและซิงก์ไปยังไคลเอนต์
- ปรับแต่งมาสำหรับแอปพลิเคชันแบบเรียลไทม์ และออกแบบมาโดยมีเป้าหมายเพื่อลด latency ให้ต่ำที่สุด
- สถานะของแอปพลิเคชันถูกเก็บไว้ในหน่วยความจำ และบันทึกลง WAL(Write-Ahead Log) เพื่อการกู้คืน
วิธีติดตั้ง
ติดตั้งบน macOS / Linux
ติดตั้งบน Windows
รันด้วย Docker
- หากใช้ Docker
docker run --rm --pull always -p 3000:3000 clockworklabs/spacetime start
4 ขั้นตอนเพื่อเริ่มต้นใช้งาน
- ติดตั้งเครื่องมือ CLI
spacetime
- รันโหนดเดี่ยวด้วยคำสั่ง
spacetime start
- เขียนและอัปโหลดโมดูลด้วยหนึ่งในภาษาที่รองรับ
- เชื่อมต่อกับฐานข้อมูลด้วยไลบรารีไคลเอนต์
การรองรับภาษา
โมดูลฝั่งเซิร์ฟเวอร์
ไลบรารีไคลเอนต์
ข้อมูลไลเซนส์
- ใช้ไลเซนส์ BSL 1.1
- หลังจากช่วงเวลาหนึ่งจะเปลี่ยนเป็น AGPL v3.0 + ข้อยกเว้นการลิงก์
- ไม่ได้บังคับให้ต้องเปิดเผยซอร์สโค้ดของแอปพลิเคชันที่เชื่อมต่อกับ SpacetimeDB
- เป็นแนวทางไลเซนส์ซอฟต์แวร์เสรีที่ออกแบบมาเพื่อให้การมีส่วนร่วมกลับคืนสู่ชุมชน
เอกสารทางการ
5 ความคิดเห็น
ไอเดียน่าสนใจดีนะครับ สงสัยเหมือนกันว่าเขาแก้เรื่องอย่าง DDoS หรือ Auth ได้ดีแค่ไหน
ชื่อดูเท่มากจริง ๆ
ตอนแรกคิดว่ามันสดใหม่และดูดีมากจริง ๆ แต่กลายเป็นว่าผมเคยกดดาวบน GitHub ไว้นานแล้วนี่เอง ความจำผมนี่นะ..
SpaceTimeDB - รวม DB และเซิร์ฟเวอร์ไว้เป็นหนึ่งเดียว
เคยแนะนำไปเมื่อปีกว่า ๆ ก่อนหน้านี้ ตอนนี้ก็ยังอัปเดตมาได้ดีอย่างต่อเนื่องนะครับ a16z กับ Supercell ก็ร่วมลงทุนด้วยเหมือนกัน
ความคิดเห็นจาก Hacker News
SpacetimeDB อยู่ในหมวดเทคโนโลยีแบบ "จัดระเบียบวิธีคิดใหม่ครั้งใหญ่" ซึ่งมีศักยภาพที่จะเพิ่มประสิทธิภาพได้มากผ่านการจัดโครงสร้างใหม่
ความคิดเห็นที่ดีที่สุดจากโพสต์ก่อนหน้า:
SpacetimeDB ถูกพัฒนาขึ้นเพื่อรองรับ MMORPG ขนาดใหญ่ชื่อ BitCraft
เข้าใจได้ยากว่าจะเขียนเกมเซิร์ฟเวอร์ด้วยเทคโนโลยีนี้อย่างไร
BitCraft ดูน่ารักดี
YouTube แนะนำ SpacetimeDB แต่ไม่เคยสร้างวิดีโอเกมมาก่อน
โปรเจกต์นี้อยู่ภายใต้ BSL และมีข้อจำกัดด้านระยะเวลาที่ค่อนข้างหนัก
ไม่ควรสับสนระหว่างสคีมาฐานข้อมูลเชิงสัมพันธ์กับวิธีที่แอปประมวลผลข้อมูล
สงสัยว่าการรันฐานข้อมูลแบบโลคัลในเกมเล่นคนเดียวมีความหมายหรือไม่
ดูเหมือนจะเป็นฐานข้อมูลในหน่วยความจำ พร้อม WASM runtime สำหรับโฮสต์โดเมนลอจิก