SuperAPI AI 工具集

spacetimedb-concepts

通用与其它

查看项目

更新于 10-15 19:50

技能介绍

用途:帮助理解 SpacetimeDB 架构与核心概念,适用于学习该技术或进行架构选型。SpacetimeDB 将关系型数据库与应用服务器合为一体,应用逻辑以 WebAssembly 模块上传到数据库内运行,客户端直连数据库,省去传统 Web/游戏服务器层。

主要能力与概念:

  • 表:所有状态存于表,采用关系模型,支持 SQL 订阅查询;表分私有(默认)与公开(客户端可读,写入仍需 Reducer)。建议按访问模式而非实体拆分表。
  • Reducer:事务性函数,是客户端修改状态的主要入口;原子、隔离、不可访问网络或文件系统、不返回数据、必须确定性。
  • 订阅:客户端注册 SQL 查询,先收到初始数据,再实时接收变更,通过回调响应。
  • 模块:WebAssembly 包,含表、Reducer、视图、事件表、过程(Beta);服务端可用 Rust、C#、TypeScript(beta)编写。
  • 身份:基于 OIDC,Identity 为长期唯一标识,ConnectionId 标识具体连接;授权必须用 ctx.sender(),不可信任参数传入的身份。

必要用法(CLI): spacetime start spacetime publish <db-name> --module-path <module-path> spacetime generate --lang <lang> --out-dir <out> --module-path <module-path> spacetime logs <db-name>

适用场景:实时游戏、协作应用、聊天与消息、实时仪表盘等需要低延迟与自动实时同步的场景。

限制:不适合批处理分析(偏 OLTP 非 OLAP)、大对象存储、无状态 REST API。Reducer 无副作用、无返回值,读取须走订阅;自增 ID 不连续,不可用于排序。资料未提供具体收费与价格信息。