バックエンドアーキテクチャ設計
本ドキュメントは、TASHIKAプラットフォームのバックエンドアーキテクチャ設計を定義します。
アーキテクチャ概要
レイヤー構成
クリーンアーキテクチャ (Clean Architecture) を採用し、以下の層に分離:
| レイヤー | 責務 | 依存関係 |
|---|---|---|
| Domain | ビジネスロジック、エンティティ、値オブジェクト | 外部依存なし |
| Application | ユースケース、Command/Query ハンドラー | Domain のみに依存 |
| Infrastructure | DB、外部API、ファイルストレージ | Application, Domain に依存 |
| BFF (Presentation) | SPA 向けエンドポイント、ポータル別ビューモデル変換 | Application に依存 |
| Backend Presentation | 外部連携 API | Application に依存 |
SPA からのリクエストは BFF を経由して Application 層に到達する。BFF は Application 層を in-process で直接参照し(MediatR の ISender.Send() を呼び出し)、ポータル別にデータを変換して返却する。一方、外部システム(給与システム、HR システム等)からのリクエストは Backend Presentation 層が処理する。両者は同一の Application 層を共有するが、消費者に応じて異なるスキーマ・認証方式を適用する。
→ BFF の詳細設計: BFFアーキテクチャ
サブページ
| ドキュメント | 内容 |
|---|---|
| CQRS アーキテクチャ | Command/Query 分離、スナップショット方式、イベントソーシング不採用理由 |
| Tax Calculation Core | 設計原則、11ステップパイプライン、速算表、端数処理 |
| カテゴリ判定関数 | カリー化パターン、C# 実装イメージ、出力フラグ一覧 |
| 控除計算層 | 控除分類・計算ロジック、CalculationDiff(変更影響表示) |
| カスケード再計算 | 依存グラフ、全再計算方針、R8 横断依存 |
| 年度バージョニング | TaxYearMaster、計算エンジンインスタンス管理、7年保持 |
| テスト戦略 | Golden/Property/Boundary/Year-Versioned Tests |
| API 設計方針 | 年分パス、テナントコンテキスト、API バージョニング |