SpacetimeDB 是一种关系型数据库系统,可让你通过称为"modules"的存储过程将应用程序逻辑直接上载到数据库中。
你的客户端无需在客户端和数据库之间部署网络或游戏服务器,而是直接连接到数据库,在数据库内部执行您的应用逻辑。你可以像在普通服务器中一样,在模块中编写所有权限和授权逻辑。
这意味着你可以用一种语言 Rust 编写整个应用程序,并将其部署为一个二进制文件。不再有微服务、不再有容器、不再有 Kubernetes、不再有 Docker、不再有虚拟机、不再有 DevOps、不再有基础设施、不再有运营、不再有服务器。
它实际上类似于智能合约的想法,只不过SpacetimeDB是一个数据库,与区块链无关,并且比任何智能合约系统快几个数量级。
事实上它的速度非常之快,以至于大型多人在线角色扮演游戏 BitCraft Online的整个后端就只是一个 SpacetimeDB 模块。没有运行任何其他服务器或服务,这意味着游戏中的所有内容,所有聊天消息、物品、资源、地形,甚至玩家的位置都由数据库存储和处理,然后再同步出去实时发送给所有客户。
SpacetimeDB 针对最大速度和最小延迟进行了优化,而不是针对批处理或 OLAP 工作负载。它旨在用于游戏、聊天和协作工具等实时应用程序。
这种速度和延迟是通过将所有应用程序状态保存在内存中,同时将数据保留在用于恢复应用程序状态的预写日志 (WAL) 中来实现的。