概要
- DBOS は耐久性実行にPostgresだけで十分と主張
- 一部のシステムでは SQLite でも十分な耐久性実現が可能
- Litestream によるS3互換ストレージへのバックアップで可搬性を強化
- AIエージェントや実験的ワークフローに最適な構成
- 高可用性や共有スケールが必要な場合は Postgres 利用推奨
Postgres不要論からSQLite活用論へ
- DBOS は、耐久性実行において Postgres があれば追加のオーケストレーション層は不要と主張
- 筆者はこの方向性に賛同し、さらに進めて SQLite でも十分なケースが多いと提案
- 多くの耐久性システムでは、本質的に必要なのは ワークフロー状態の保存 のみ
- 計算リソース は安価で使い捨て可能な設計が望ましい
- Obelisk のようなシステムでは、進捗は実行ログに記録され、履歴から再実行やリトライが容易
- 最も重要なのは ワークフロー状態の持続性と可観測性
SQLiteが適している理由
- SQLite は トランザクショナルな耐久性 をローカルで実現
- 別途データベースサービスやネットワーク経由の制御面が不要
- ローカルファイル で完結するため、運用負荷やコストを低減
- 多くのシステムにとって ローカルDBファイル が最適な機構
Litestreamによる可搬性向上
- 実験やデータが蓄積する場合、 SQLiteファイルの管理 が課題
- Litestream を利用することで、 SQLiteの変更を非同期でS3互換ストレージへ転送 可能
- 実行環境に近い状態で作業しつつ、バックアップや移行、検証も容易
- 非同期レプリケーション のため、直近の書き込みが失われるリスクあり
- 高可用性が必須な用途には向かないが、多くのAI・実験ワークフローには十分
エージェント型システムにおける利点
- AIエージェント や 自動生成ワークフロー に最適
- 各エージェントやテナントごとに 小規模で独立した状態管理 がしやすい
- マイクロVMやコンテナ で小さなサーバー群を構築し、各自SQLite+オブジェクトストレージバックアップ運用
- 常時稼働の大規模共有システムよりも シンプル・低コスト・障害分離性 が高い
Postgresを選ぶべきケース
- SQLite が全てのケースに適しているわけではない
- Obelisk は Postgres もサポート
- 高可用性 や 大規模共有スケーラビリティ が必要な場合は Postgres が適切
- オブジェクトストレージへの 非同期レプリケーション では不十分な場合も Postgres 推奨
- 多くのワークフローシステムは初期段階で過剰なインフラを持つ必要はない
- 多くのケースでは SQLite+Litestream+安価なワーカー で十分な耐久性システムを構築可能
まとめ:AIエージェント時代の新しいデフォルト
- AIエージェント や 実験的システム では、 SQLite+Litestream 構成が最も合理的な選択肢
- 必要最小限のインフラで 耐久性・可搬性・運用効率 を両立
- 状況に応じて Postgres との使い分けが重要
Temporalを使ってワークフローの設定を始めたんだ。ローカルアプリとしては比較的軽量でデプロイできるよ。孤立したローカルインストールにはSQLiteを使ってる。APIのリトライやワークフロー、タスクの整理がすごく簡単になるんだ。ぜひ試してみてほしい。哲学的には、この記事が提案していることそのものだけど、エージェントが使うための非常にリッチで柔軟なインターフェースが追加されてる。さらに、ウェブUIがあって、ワークフローの確認やエージェントの実行状況を見たりするのがすごく簡単なんだ。Temporalはシステムに高い信頼性をほぼ無料で組み込んでくれるし、分散型で信頼性の高いシステムを作るのは難しいから、わざわざ車輪を再発明する必要はないと思う。SQLiteデータベースを簡単に調べたり、ワークフローの状況を把握したり、個別のタスクを組み合わせたり、ワークフローを簡単に呼び出せるようにしたいなら、Temporalをチェックしてみて。あと、エージェント用にファイルからはほとんど離れた感じ。MarkdownやJSONは素晴らしいけど、小さなローカルアプリを作る時には罠に感じることもある。LLMはSQLiteに強いし、MarkdownやJSONなど、好きなものを出力できるよ。エージェントが特定の行をクエリするだけで済むから、jqやgrepを使うよりもトークンをかなり節約できる。ファイルの束よりも、データの構造をきちんとするようにエージェントを促す、ポータブルで自己完結型のデータ管理システムが手に入るんだ。それに、もしローカルプロジェクトが成長したり、もっと正式になったりしても、MySQL/Postgresにスケールアップできるから、すでにデータのスキーマや規律が整ってるよ。