コンテンツにスキップ

ADR-0003 マルチテナント方式

  • ステータス: 採用
  • 日付: 2026-06-20

背景

SaaS として複数テナントのデータを安全かつコスト効率よく扱う必要がある。 方式は大きく「共有DB + 行分離」「スキーマ分離」「DB 分離」の 3 つ。

決定

初期は 共有DB + tenant_id 行分離 を採用し、PostgreSQL の RLS で 分離を DB レベルに強制する。

  • コスト効率と運用(単一マイグレーション)が最も容易。
  • RLS によりアプリのバグでのテナント越境を防ぐ多層防御を実現。
  • 将来、特定の大口テナントを分離する必要が出たら、スキーマ分離や DB 分離へ段階的に移行できる設計余地を残す。

影響

  • すべてのテナント所属テーブルに tenant_id と RLS ポリシーが必要。
  • DB アクセスは withTenant 経由を必須とする。
  • 詳細は マルチテナント設計 を参照。