PostgreSQL で十分
現代のアプリケーション開発において、多くの専用データベースやツールを導入する代わりに、PostgreSQL 単体で十分に事足りるケースが多いことを論じた記事。全文検索、JSON ストレージ、キューイング、地理空間データなど、PostgreSQL が備える豊富な機能を活用すれば、アーキテクチャをシンプルに保ち運用コストを削減できると主張する。
背景メモ
- この記事は「PostgreSQLだけで十分だ」という主張を展開している。現代のWebアプリ開発では、用途に応じて専用データベース(検索にはElasticsearch、キャッシュにはRedis、分析にはClickHouseなど)を組み合わせる「ポリグロット・パーシステンス」が一般的になっているが、筆者はそれらをPostgreSQLの機能で代替できるケースが多いと指摘する。
- PostgreSQLは拡張可能な設計で有名なオープンソースRDBMS。全文検索(FTS)、JSON保存・検索、トリガベースのキャッシュ管理、パーティショニング、レプリケーションなど、標準で多くの機能を備える。さらに、外部データラッパー(FDW)を使えば他のDBやAPIを透過的にクエリできる。
- 筆者は「Tool Fatigue(ツール疲れ)」という現象に警鐘を鳴らしている。新しいツールを導入すると学習コスト、運用負荷、依存関係が増える。PostgreSQLの機能を最大限活用すれば、アーキテクチャをシンプルに保ち、開発速度と保守性を高められるという立場。
- 背景として、ScalaやPlay FrameworkなどJVM系スタックの経験がある開発者が、時代とともにClojure、Phoenix(Elixir)、最終的にPostgreSQL+シンプルな構成へ回帰した経緯がある。これは「boring technology(枯れた技術)」を選ぶべきという思想と通じる。
- ただし、超低レイテンシが求められるキャッシュや、大規模な分散全文検索など、PostgreSQLでは苦しい領域も存在する。この記事は「全否定」ではなく、「まずはPostgreSQLで済ませられないか検討しよう」という現実的な提言として読むと理解しやすい。