型付き辺: 出 2 / 入 0
ADR-0002: 仕訳エンジンとデータマートの分離
- Status: Accepted (旧形式「## ステータス: 採用済み」より転記)
- Mode: Standard (内容から推定・旧 README 一覧より移設)
- Kruchten Type: Existence
- Scope: product
- Implementation Status: Done (仕訳エンジン・データマート分離実装済)
Kruchten Type は ADR-0031 (2026-05-13) で遡及追加。分類根拠は ADR-0031 §決定セクションおよび docs/adr/README.md の Kruchten 3 分類ガイドを参照。 Status / Mode / Scope は 2026-06-11 に遡及追加 (ADR-0031 corrigendum パターン)。出典: Status = 旧形式「## ステータス」節の機械転記 / Mode = 旧 README §既存 ADR 一覧の推定値 (git 履歴) / Scope = ADR-0049 4 層分類の遡及付与 (PR レビューで確定)。
ステータス: 採用済み
コンテキスト
INV承認→仕訳生成→財務諸表出力のパイプラインを、単一の処理として実装するか、分離するかの選択。
決定
仕訳エンジン (403_subledger_engine.js) とデータマート (6xx_datamart_*.js) を完全に分離する。
- 仕訳エンジン: INV承認/STL消込のイベントドリブンで42タブに書き込む
- データマート: 32/33タブからのバッチ読み込みで財務諸表を再構築
理由
- GASの6分実行制限により、全処理を1回で実行するとタイムアウトのリスク
- 仕訳エンジンは「1回の操作で1回だけ実行」、データマートは「何度実行しても同じ結果」という異なる冪等性モデル
- 法人税等の自動計算はP/L完成後にしか計算できないため、仕訳エンジンには組み込めない
結果・影響
- ポジティブ: 各処理が独立してテスト可能。GASタイムアウトリスクの軽減
- ポジティブ: データマートは何度再実行しても同じ結果(冪等性が自然に保証)
- ネガティブ: ユーザーは「Action A → Action B → マート更新」と3回メニュー操作が必要
Confirmation (準拠確認 / Fitness Function)
本セクションは ADR-0036 (Accepted 2026-05-14) で遡及追加された。ADR-0031 パターン (業界標準準拠メタデータ後付け = 誤字修正範疇) に準拠する遡及で本文の意思決定内容は不変。
- 検証手段: N/A — 要マッピング更新 (ADR-0036 遡及時点で未定義、月次レビューで確定)
- 実行頻度: —
- 違反時の対応: —