必要なのはPostgreSQLだけ
本記事では、多くの開発スタックで必要とされる多様な機能をPostgreSQLだけで実現する方法を解説する。Webアプリケーションに必要なデータベース、キャッシュ、キュー、全文検索、ベクトル検索などをPostgreSQLの拡張機能や機能を活用して統合し、シンプルで強力なアーキテクチャを構築するアプローチを紹介する。
背景メモ
- この記事は「データベースは目的別に使い分けるべき」という業界の常識に対し、**PostgreSQLだけでほぼすべてのユースケースをカバーできる**と主張する技術エッセイ。
- 著者は、Redis(キャッシュ/キュー)、MongoDB(ドキュメントストア)、Elasticsearch(検索エンジン)、Kafka(イベントストリーミング)など、PostgreSQL以外の専用DBを追加するのが「デフォルト」になっている現状を問題視。
- PostgreSQLは標準で**JSONサポート、全文検索(FTS)、トリガー/関数によるキュー機構、パーティショニング、レプリケーション**などを備えており、近年の拡張機能(pgvector、PGQ、pg_searchなど)でさらに領域を広げている。
- 議論の核心は「システムが複雑になるにつれ、専用DBの増加が運用負荷とデータの一貫性問題を生む。PostgreSQLに統合すればシンプルになる」というシンプルさへの回帰。ただし、超大規模なトラフィックや特殊な性能要件では限界があることも認めている。