共通基盤の設計軸 2026 ─ 抽象・責務・非機能要件を設計する 15 章
ドメイン側で慣れたエンジニアが共通基盤側に立ったときに必ず違和感を覚える 3 つの論点(抽象的すぎる / 責務の置き方 / 非機能要件の桁が違う)を、Team Topologies の TVP・Pit of Success・Inversion of Control・SRE の SLO・Resilience pattern を軸に 15 章で解きほぐす
はじめに ─ ドメインから出ると言葉が変わる
こんな違和感を、共通基盤の設計で感じていないか
ドメイン側でずっと書いてきた人が、ある日「共通基盤を作る側」に立たされる。最初に出会うのは違和感だ。
「で、何を作るんだっけ?」
ドメインなら明確だ。注文ドメインなら「Order Aggregate を作る」。会計なら「Invoice の発行」。だが共通基盤と言われると ── 認証 / API ゲートウェイ / ジョブキュー / 設定ストア / 通知 / レートリミッタ / 監査ログ / 識別子発行 ── どれも具体的だが、どれも抽象的で、ドメインのような明確な境界がない。
「責任はどこまで持てばいい?」
ドメインなら明確だ。Aggregate の整合性が境界。だが共通基盤は、利用者の使い方次第で責任範囲が伸び縮みする。利用者が誤った使い方をしたら、責任は誰にあるのか。デフォルト挙動はどうあるべきか。callback はどこまで利用者に書かせるのか。
「非機能要件、なんでこんなに重い?」
ドメインの SLO は 99.9% で十分だった。共通基盤は 99.99% が普通で、利用者数が増えれば 99.999% が要求される。性能は集約トラフィックを捌く必要があり、セキュリティは横断的、可観測性は利用者の数倍要る。桁が 1 つ違う世界に放り込まれる。
これらは前作 DB 設計の軸 2026 の第 16 章で「Repository が DAO に堕ちる宿命」として触れた論点の延長にある。本シリーズではこれを DB を超えた共通基盤全般 で扱う。
このシリーズが目指すこと
15 章を通して、共通基盤を設計する立場で “外さない” 判断軸をインストールすることを目指す。具体的には:
- 第 1-2 章で共通基盤とは何か / TVP(Thinnest Viable Platform)
- 第 3-5 章で抽象度・責務・API の原則(Pit of Success / Inversion of Control / Boring API)
- 第 6-9 章で非機能要件の 桁が違う世界(可用性・性能・セキュリティ・可観測性)
- 第 10-11 章で障害伝播の抑制とマルチテナンシー
- 第 12-13 章で進化と利用者体験(Versioning / Golden Path)
- 第 14-15 章で組織との関係 / 作るかどうかの判断 / 外さない 8 軸
「共通基盤」と言って想像する具体的なシステム ── 認証・API ゲートウェイ・ジョブキュー・通知・設定ストア・識別子発行 ── これらに横断する設計論として書く。
既存シリーズとの関係
姉妹シリーズ Platform Engineering 実践地図 は 事例・組織・運用軸(規模・業種別の各社事例)を扱う。本シリーズは 設計・責務・非機能要件軸で補完する。組織論は第 14 章で触れるが、深掘りは姉妹シリーズに譲る。
対象読者
- ドメイン側で書いてきて、共通基盤側に立ったときに違和感を覚えているエンジニア
- 共通基盤の設計責任を負う立場で、「何が正しいか」の軸が欲しい人
- 既存共通基盤を運用していて、設計判断の根拠を言語化したい人
- Team Topologies の Platform Team の責務を実務で問われている人
「Platform Engineering とは何か」のレベルから始める入門書ではない(それは姉妹シリーズに譲る)。
全 15 章の構成
読み方の選択肢
通読の目安は 3-4 時間。3 通りを想定:
A. 通読(推奨)
第 1 章 から順に。各章末の「次章への問いかけ」が次章を引っ張る。1-2 章の “抽象を設計する” の問いが、3-5 章で API 設計に降ろされ、6-9 章で非機能要件の桁の違いを示し、10-15 章で運用と組織で統合される。
B. 関心領域だけ
C. リファレンスとして使う
第 15 章「外さない 8 軸」 のチェックリストから、その軸の根拠章へジャンプ。
それでは始めよう。第 1 章 は「共通基盤とは何か」から。
目次
- 共通基盤とは何か ─ 抽象を設計するということ 共通基盤を「ドメインを持たないドメイン」として定義し、ドメイン側との 4 つの本質的な違い(抽象度・責務・非機能・利用者)を整理する
- 責務の境界 ─ Thinnest Viable Platform Team Topologies の Thinnest Viable Platform(TVP)を起点に、共通基盤の責務の引き方を扱う。「最小から始める」原則と、責務を伸ばすときの 3 つの判断軸を整理する
- 抽象度の選択 ─ Pit of Success と Sharp Tools Rico Mariani の "Pit of Success"・Brad Abrams の API 設計哲学・Sharp Tools のバランスを軸に、共通基盤の API がどの抽象度でどう振る舞うべきかを設計する
- Inversion of Control ─ 基盤主導 vs 利用者主導 \"Don't call us, we'll call you\" の Hollywood Principle と Inversion of Control を起点に、共通基盤が Library として振る舞うか Framework として振る舞うかの判断軸を整理する
- API 設計の原則 ─ Boring API と進化容易性 共通基盤の API 設計の原則として、Boring API・Idempotency・エラー設計・命名規則・進化容易性を Stripe / Brandur の実例を引きながら整理する
- 非機能 (1) 可用性 ─ 利用者の SLO を背負う Google SRE の SLI / SLO / Error Budget を起点に、共通基盤の可用性が「利用者の SLO の和」になる構造を解き、運用ルールとしての error budget の使い方を整理する
- 非機能 (2) 性能 ─ 集約トラフィックを捌く 共通基盤の性能設計を、集約トラフィック・Backpressure・キャッシュ階層・N+1 問題・性能予算の観点から扱う
- 非機能 (3) セキュリティ ─ Zero Trust と Tenant 分離 共通基盤のセキュリティ設計を、Zero Trust モデル・Tenant 分離・Policy as Code(OPA / Cedar)・最小権限の観点から扱う
- 非機能 (4) 可観測性 ─ 自分の状態を露出する 共通基盤の可観測性を Metrics・Logs・Traces の三位一体(Three Pillars)で扱い、OpenTelemetry を中心に「自分の状態を利用者に露出する責務」を整理する
- 障害伝播の抑制 ─ Bulkhead / Circuit Breaker / Backpressure 障害伝播を抑える 5 つのパターン(Timeout / Retry / Circuit Breaker / Bulkhead / Backpressure)を Netflix の Hystrix → Resilience4J の文脈で整理し、組み合わせの設計を扱う
- マルチテナンシー ─ Hot tenant 対策と Quota マルチテナント基盤の Hot tenant / Noisy Neighbor 問題を 2026 年の技術トレンド(Kata Containers / Edera Runtime / K8s)と Quota / Rate Limit の組み合わせで解く
- 進化と保守 ─ Versioning / Deprecation / Migration 共通基盤の API を数年〜十年単位で進化させるための作法を、Stripe の date-based versioning と compatibility layer を中心に整理する
- 利用者の認知負荷を下げる ─ Golden Path / SDK / Self-service Backstage の Golden Path / Software Template、SDK 設計、Self-service portal、Documentation の原則を整理し、利用者の認知負荷を下げる仕組みを扱う
- 組織と境界 ─ Conway's Law / Team Topologies Conway's Law と Team Topologies を起点に、共通基盤を担う組織の形と Platform-as-a-Product という mindset を扱う
- 共通基盤を作るかどうか ─ 外さない 8 軸 共通基盤を作るべきか作らざるべきかの判断軸と、シリーズ全 14 章を集約した「外さない 8 軸」のチェックリストで結ぶ