- แพลตฟอร์ม โครงสร้างพื้นฐานเซิร์ฟเวอร์เลส แบบโอเพนซอร์สที่ เป็นมิตรกับนักพัฒนา ช่วยให้ปรับใช้และขยายแบ็กเอนด์ที่ซับซ้อน เช่น AI agent, แอปพลิเคชันเรียลไทม์, เกมเซิร์ฟเวอร์ ได้อย่างง่ายดาย
- เทคโนโลยีสแตก: Rust, V8, Deno, FoundationDB, CockroachDB, ClickHouse, Valkey, NATS, Traefik
- มีฟีเจอร์หลากหลายอย่าง Stateless Functions, Stateful Actors, Containerized Workloads ในรูปแบบ primitive แบบรวมศูนย์
- Stateless Functions (ฟังก์ชันไร้สถานะ): เหมาะกับงานแบบ request-response เช่น API server
- Stateful Actors (แอ็กเตอร์ที่เก็บสถานะ): เหมาะอย่างยิ่งสำหรับสร้างบริการเรียลไทม์ที่คงสถานะไว้ในหน่วยความจำ
- Sandboxed Containers: รองรับงานหนักหรือเวิร์กโหลดที่ไม่น่าเชื่อถือได้อย่างปลอดภัย
ฟีเจอร์
- Stateful Persistence
- Rivet Actor เก็บข้อมูลไว้ในหน่วยความจำ และบันทึกลงดิสก์แบบ durable โดยอัตโนมัติ
- เหมาะสำหรับการจัดการสถานะแบบไดนามิก เช่น game lobby, collaborative document, cache
- การเรียกใช้ฟังก์ชันระยะไกล (RPC)
- มีระบบส่งข้อความน้ำหนักเบาระหว่างไคลเอนต์และบริการในตัว
- รองรับ type-safe remote procedure calls (RPC) และการ broadcast ระหว่าง client/actor
- สามารถสร้างสถาปัตยกรรมการสื่อสารแบบเรียลไทม์ได้โดยไม่ต้องมี external message broker
- No Cold Starts
- บริการจะเข้าสู่โหมด Idle แล้ว Hibernate และเปิดใช้งานได้ทันทีเมื่อจำเป็น
- แอ็กเตอร์แบบ long-running จะเข้าสู่สถานะ "Sleep" เมื่อไม่ใช้งาน และกู้คืนสถานะได้ทันทีเมื่อมีคำขอถัดไป
- จากมุมมองของผู้ใช้ปลายทาง ให้ทั้งการกู้คืนจาก cold start และ low-latency ที่สม่ำเสมอ
- การกระจายที่ขอบเครือข่าย (Edge)
- สามารถปรับใช้โค้ดแบ็กเอนด์ให้ใกล้กับผู้ใช้มากขึ้น
- เพื่อให้ได้ latency ต่ำมาก Rivet จะปรับใช้ actor และ function ไปยัง global edge
- รองรับโปรโตคอล HTTP, WebSocket, TCP, UDP และสามารถปรับใช้บน global edge ได้โดยไม่ต้องมี external proxy
- รองรับคอนเทนเนอร์และเวลารันไม่จำกัด
- ไม่มีข้อจำกัดสำหรับโปรเซสที่ทำงานระยะยาวหรืองานเบื้องหลัง
- รองรับทุก Docker-compatible container (ถ้าทำงานบน Docker ได้ ก็ทำงานบน Rivet ได้)
- Fault Tolerance
- สถานะของ actor จะถูกบันทึกอย่างต่อเนื่อง จึงกู้คืนสถานะได้โดยไม่สะดุดเมื่อเกิดปัญหาหรือมีการ reschedule
- เมื่อรวมกับการทำ routing อัจฉริยะ จะช่วยรับประกันความพร้อมใช้งานสูง
- รองรับการพัฒนาแบบโลคัล
- ใช้
rivet dev หรือ Docker Compose เพื่อเปิดและทดสอบ local cluster ได้ทันที
- สามารถพัฒนาแบบวนซ้ำในเครื่องได้ก่อนนำขึ้นโปรดักชัน
กรณีการใช้งานหลัก
- AI agent
- SaaS แบบ multi-tenant
- แอปแบบ local-first
- แอปพลิเคชันสำหรับการทำงานร่วมกัน
- การรันโค้ดแบบ sandbox
- เกมเซิร์ฟเวอร์
- การซิงก์/สตอเรจของ Yjs
- แอปแชต
1 ความคิดเห็น
Rivet - ระบบจัดการเซิร์ฟเวอร์เกมมัลติเพลเยอร์แบบโอเพนซอร์ส
เมื่อ 2 ปีก่อนยังเป็นโอเพนซอร์สสำหรับใช้งานกับเกมเซิร์ฟเวอร์ แต่ตอนนี้ได้ขยายไปเป็นเซิร์ฟเวอร์เลสทั่วไปและรองรับยูสเคสที่หลากหลายมากขึ้นแล้วครับ