SpaceTimeDB
멀티플레이어 게임/앱을 구축하기 위한 DB. 데이터베이스와 서버 기능을 결합한 시스템.
About
- SpacetimeDB는 데이터베이스와 서버 기능을 결합한 시스템
- 전통적인 웹 또는 게임 서버를 별도로 두는 대신, 클라이언트가 직접 데이터베이스에 연결하여 애플리케이션 로직을 실행
- Rust로 작성된 "모듈" 형태의 저장 프로시저를 통해 앱 로직을 데이터베이스에 직접 업로드 가능
- 단일 Rust 바이너리로 전체 애플리케이션을 배포 가능하며, DevOps, 컨테이너, 서버, 마이크로서비스 등이 불필요함
Features
- 스마트 컨트랙트와 유사한 개념이지만 블록체인과는 무관함
- 기존 스마트 컨트랙트 시스템보다 훨씬 빠름
- 게임 내 모든 요소가 데이터베이스에서 실시간으로 처리되고 클라이언트에 동기화됨
- 실시간 애플리케이션에 최적화되어 있고, 지연 시간 최소화를 목표로 설계됨
- 애플리케이션 상태는 메모리에 유지되며, 복구를 위해 WAL(Write-Ahead Log)에 기록됨
- 관계형 데이터베이스 이면서, 어플리케이션 로직을 직접 저장 가능
- 'Modules' 라고 부르는 스토어드 프로시져 형태
- 모든 어플리케이션 상태를 메모리에 저장하는 방식으로 속도를 달성
- 데이터는 WAL(Write-Ahead-Log) 로
- 또는 별도 스탠드얼론으로 직접 실행도 가능 (spacetime CLI 이용)