概要
- 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 との使い分けが重要