EN
返回档案库

档案库 · 产品创意 · 产品决策 · 2021–2024

即时数据库:让每次查询都自带多人在线功能的客户端关系型数据库

即时数据库的创始人将应用商店、端点和缓存视为数据库问题,随后推出了一款客户端数据库,其中每次查询默认为多人在线。

InstantDB

创意是什么将前端状态管理中的重复体力活当作数据库问题来解决:将数据库放置在客户端,使开发者只需编写与所需数据形状匹配的关系型查询。伤筋动骨

当时的题目

InstantDB's founders, former senior and staff engineers at Facebook and Airbnb, kept watching app teams repeat the same work feature after feature: spin up servers, wire endpoints, integrate auth, marshal data, then hand-write optimistic updates and rollbacks. Firebase had made realtime easy, but its document model made relationships a schlep. From 2021 they argued the real fix was a different kind of database.

它是怎么成立的

即时数据库始于一次重新框架。2021 年,创始人主张 UI 工程师面临的许多繁琐工作——存储、选择器、端点、本地缓存——本质上是数据库问题。如果数据库在客户端,开发者就不需要大部分管道:编写查询,获取和缓存随之而来;让每次查询默认为多人在线,有状态服务器就消失了;给数据库回滚功能,乐观更新也就自然实现。2022 年的第二篇文章概述了具体形态:类似 Firebase 但真正支持关系型的数据库。

产品使这一抽象变得具体。开发者编写 InstaQL,一种类似 GraphQL 的语言,查询形状与组件所需数据匹配;系统处理获取、权限检查、离线缓存以及带回滚的乐观更新。底层,用户数据作为三元组存储在多租户 Postgres 中,一个带 Datalog 引擎的 Clojure 同步服务器跟踪 Postgres 的预写日志以检测新数据并使查询失效——这是 Asana 的 WorldStore 和 Figma 的 LiveGraph 的模式。客户端在 IndexedDB 中缓存最近的查询,因此多人在线和离线功能免费获得。

发布刻意做到了具体。Show HN 开头展示了一个十二行的 React 聊天应用——读、写、渲染——并鼓励人们尝试教程或阅读源码。Hacker News 回应了 1145 分和 297 条评论,从各个角度对该想法进行了压力测试:与 PocketBase 和 Replicache 的比较、关于 Postgres 合并语义和权限评估的问题,以及同周基于 Instant 构建的应用,包括一个攀岩追踪器,其开发者也留在了社区,与团队讨论聚合查询和管理逃生舱。

妙在哪

  • 重新框架改变了解决问题的方法:状态管理并非通过另一个存储库解决,而是通过将数据库本身移至 UI 所处的位置来解决。
  • 关系型查询的形状与组件所需数据匹配,消除 Firebase 文档模型强制增长应用进行手动联接和反规范化的问题。
  • 多人在线、存在感和离线被设计为查询层的基本特性——每次查询默认订阅——从而使协作功能不再是定制基础设施。
  • 十二行聊天应用让宏大的抽象在几秒内变得清晰,这就是为什么评论区充满了立即尝试的构建者,而不是无休止地争论架构。

做出来什么

The 22 August 2024 Show HN drew 1,145 points and 297 comments. Builders shipped apps on it within days — one commenter used it to build a bouldering tracker that week — while the founders fielded architecture questions about merging frequent updates and bringing existing Postgres databases under Instant's sync layer. Its GitHub page later showed 10.5k stars, 398 forks and 2,511 commits.

他们自己的页面InstantDB tutorial — build a live app

可以借走的

当每个应用重复相同的样板代码(同步、离线缓存、乐观更新)时,那并不是界面劳动:将其移入平台中,则未来的每个应用中的困难部分都会消失。

后来

开源时,创始人表示他们获得了时任 Firebase 首席执行官 James Tamplin 的支持,背后有五位工程师和近 2000 次提交。该版本采用宽松许可证,免费托管层永不暂停项目,并提供可自托管的后端。后来的仓库截图显示项目依然活跃——10.5k 星、398 个复刻和 2511 次提交——定位已演变为“AI 编码应用的最佳后端”,同时 2021-2022 年论文仍作为为何客户侧数据基础设施应该存在的论据放在链接中。

资料来源

发现哪里写错了?告诉我们。

轮到你了

你刚读完一个点子。把你手上的题目说出来,看看谁接过同样的题。

免费账号 · 3 次免费提问 · 不用绑卡

相关案例