1. SQLite is all you need for durable workflows (obeli.sk)
SQLite 在持久化工作流中的架构与应用
在持久化工作流(Durable Workflows)系统中,使用 SQLite 结合 Litestream 可以替代传统网络数据库(如 Postgres)作为核心基础设施,该极简架构特别适用于 AI 代理(AI Agents)场景。
核心理念:状态持久化与计算分离
持久化执行并不必然依赖昂贵的持久化计算基础设施。计算资源可以是廉价且一次性的,核心在于工作流状态(如执行日志)的持久化。在 Obelisk 等架构中,工作流通过持久化的历史记录进行重放,活动(Activities)支持重试,因此只需确保状态的安全与易于检查。
架构组件与关键功能
- SQLite(本地状态存储):提供事务性的持久状态,无需引入独立的数据库服务。消除了网络跳转、额外的控制平面和运维负担,本地数据库文件即可满足大量系统的需求。
- Litestream(异步备份与可移植性):将 SQLite 的数据更改异步流式传输到兼容 S3 的对象存储。
- 运作模式:Obelisk 服务器运行 SQLite,Litestream 负责后台备份,观察者(Observer)可按需拉取数据库文件,用于本地重放、调试和分析代理行为。
- 局限性与权衡:由于采用异步复制,若本地存储卷在同步前丢失,可能会丢失最新的本地写入。这不适用于高可用共享数据库,但对于 AI 和实验性工作流完全可以接受。
AI 代理场景的高度契合
该架构对 AI 代理和 AI 生成的工作流极具优势。这类系统通常具有突发性和实验性,采用“每个代理或租户拥有独立的小型状态单元(如微虚拟机或容器内的独立 SQLite 加 S3 备份)”的分布式舰队模式,比单一的大型共享系统更简单、成本更低,且具备更优的故障隔离能力。
Postgres 的适用场景
尽管 SQLite 是许多系统的理想默认选择,但在以下情况应选择网络数据库(如 Postgres):
- 需要更高的高可用性(HA)和广泛的共享可扩展性。
- 需要网络数据库提供的特定部署属性。
- 业务无法接受异步复制到对象存储的持久化模型。
对于大量不需要在初期就引入复杂基础设施的系统,本地 SQLite 结合 Litestream 备份至 S3,再辅以廉价的工作节点,即可构建出一个基础设施极简的持久化系统,这也是当前 AI 代理领域最合理的默认架构选择。