Repository-evidenced architecture

かけあい
システム構成

サービス全体と実装構成に加え、Blue-Green Deployment、比較対象となる旧・単一runtime、データの流れ、DB操作・処理の新旧方式を7枚の図に分けました。

確認範囲: リポジトリ内の実装・設定・資料から作成しています。実ホスト、Cloudflare、OpenAI、DB等の管理画面・実データ・稼働状態には接続していません。

DIAGRAM A

関係者向け|サービス全体図

利用者、自社で管理する部分、外部サービス、主なデータの行き先を簡潔に示します。

学生・参加者とメンター・管理者がCloudflareのWeb入口と自社内の通信入口を経由して、かけあいを利用する全体図。目標・成果物・相談は自社管理の記録保管へ、一般利用者の認証はCloudflareの認証サービスへ、加工したAI入力はOpenAIへ送られる。外部ファイルはURLのみ保存し、利用者がブラウザから直接開く。
クリックすると拡大可能なSVGを開きます。通常通信と管理画面のAccess認証を分けて表現しています。
DIAGRAM B

エンジニア向け|システム構成図

実行単位、責任境界、通信方向、認証・認可、PostgreSQLの永続queue、外部連携をC4 Container相当で示します。

一般利用者とスタッフのブラウザ、Cloudflare Edge・Access・Auth Worker・D1・Email、ローカルcloudflared・HAProxy・Next.js Web・AI Worker・PostgreSQL、OpenAI API、外部ファイルリンクの構成図。実線は要求と主要データ、破線はcloudflaredの外向き接続、点線は利用者の任意リンク遷移を示す。
N01–N14とE01–E15は共通モデル・根拠台帳へ対応します。blue/greenはproduction用設定で、active slotと実配備方式は未確認です。

Deployment topology comparison

Blue-Green Deploymentと旧構成

固定HAProxyの背後で新旧slotを入れ替える方式と、単一combined containerを停止・再作成する方式を、同じ粒度で比較します。どちらが実ホストで採用されたかは未確認です。

DIAGRAM C

Blue-Green Deployment構成

空slotのWebとAI Workerを準備し、readiness成功後にHAProxyを切り替え、旧slotをdrainする通常リリースの流れです。

Cloudflare Tunnel、固定HAProxy、blueとgreenのWeb・AI Worker、共有PostgreSQL、OpenAIからなるBlue-Green Deployment構成。平常時はactive slotのAI Workerが1 container、更新中だけ新旧2 containersが動き、旧Workerは実行中の旧release処理を完了してから停止する。
図中はBlueがactiveからdraining、Greenがcandidateからactiveへ移る更新中の例です。平常時はactive slotだけが動き、slotの色と役割は切替ごとに反転します。
DIAGRAM D

旧構成|単一combined runtime

Web/APIとAI Workerを1つのprocessで動かし、旧containerを停止・削除してから新containerを起動する比較対象です。

Cloudflare Tunnelが単一のcombined SaaS containerへ接続し、そのcontainerがPostgreSQLとOpenAIを利用する旧構成。host-runtimeが旧containerを停止・削除して新containerを起動し、readiness後にTunnelを開始する。
リポジトリに併存する旧・代替方式の図です。過去採用や現在稼働を確認したものではありません。

Data flow and storage

データの流れと保存先

認証・セッション、画面・業務データ、AI処理、外部ファイルを分け、入力から処理、外部連携、永続保存までを示します。

DIAGRAM E

データフロー構成

4つのデータ経路について、ブラウザ、サーバー側処理、外部サービス、保存先の関係を示します。

認証・セッション、画面・業務データ、AI処理、外部ファイルの4行で構成されたデータフロー図。認証秘密はCloudflare D1、業務データとsessionとAI結果はPostgreSQLへ保存される。AI入力は最小化後にOpenAIへ送られ、外部ファイル本体は利用者が保管先から直接取得する。
同じ論理componentをデータ種別ごとに繰り返しています。箱の数はcontainerやdatabase instanceの数を表しません。

Database operation comparison

DB操作・処理の新旧比較

業務PostgreSQLについて、2026-09-29時点の組織全体スナップショット方式と、現在の対象別クエリ・Entity Transaction方式を、read・write・AI Workerの同じ観点で比較します。

DIAGRAM F

2026-09-29時点|旧DB操作・処理

組織全体のAppData snapshotを中心に、組織共通lockの中で更新を直列化する方式です。

2026年9月29日時点の業務PostgreSQL処理。readは組織全体のAppData snapshot、writeは組織共通advisory lock内の全量読込・clone・差分書込、AI Workerも実行文脈の取得と結果反映で全snapshotに依存する。
基準はGit tag v2026.09.29です。旧方式にもrevision別cacheと永続AI jobはあり、writeは変更aggregateだけを書き込みます。
DIAGRAM G

現在|DB操作・処理

対象別クエリとEntity Transactionにより、必要な行だけを読み、同じentityの競合だけをrow lockまたはCASで制御します。

現在の業務PostgreSQL処理。readはroute・target別の限定query、writeはentity transactionと対象行lockまたはCAS、AI Workerは対象workflow graphだけを読みOpenAI処理をDB transaction外で実行する。
対象別readは1 SQLとは限りません。認可、対象、依存関係、最近の履歴を複数の限定SQLで組み立てます。
デプロイ方式の比較説明Worker数、AI処理中の切替、適用範囲、旧構成との差。 データフローの説明認証、業務データ、AI処理、外部ファイルの経路と保存先。 DB操作・処理の新旧比較9月29日時点の全体snapshot方式と現在の対象別query・entity transaction。 構成根拠権限、通信、データフロー、環境差、ファイル・行番号。 調査・検証記録調査範囲、不整合、未確認事項、描画・安全性確認。 共通モデルノード、接続、境界、根拠参照、集約対応のJSON。 図ソースモデル、レイアウト、生成・検証方法。