Skip to content

バックエンドアーキテクチャ設計

本ドキュメントは、TASHIKAプラットフォームのバックエンドアーキテクチャ設計を定義します。


アーキテクチャ概要

レイヤー構成

クリーンアーキテクチャ (Clean Architecture) を採用し、以下の層に分離:

レイヤー責務依存関係
Domainビジネスロジック、エンティティ、値オブジェクト外部依存なし
Applicationユースケース、Command/Query ハンドラーDomain のみに依存
InfrastructureDB、外部API、ファイルストレージApplication, Domain に依存
BFF (Presentation)SPA 向けエンドポイント、ポータル別ビューモデル変換Application に依存
Backend Presentation外部連携 APIApplication に依存

SPA からのリクエストは BFF を経由して Application 層に到達する。BFF は Application 層を in-process で直接参照し(MediatR の ISender.Send() を呼び出し)、ポータル別にデータを変換して返却する。一方、外部システム(給与システム、HR システム等)からのリクエストは Backend Presentation 層が処理する。両者は同一の Application 層を共有するが、消費者に応じて異なるスキーマ・認証方式を適用する。

→ BFF の詳細設計: BFFアーキテクチャ

Presentation 層Application 層Infrastructure 層Domain 層HTTPHTTPISender.Send()in-processISender.Send()in-processReact SPA外部システム(給与/HR)BFF (Presentation)SPA 向けエンドポイントポータル別ビューモデル変換Backend Presentation外部連携 APIApplicationユースケースCommand/Query ハンドラーInfrastructureDB・外部APIファイルストレージDomainビジネスロジックエンティティ・値オブジェクト
Presentation 層Application 層Infrastructure 層Domain 層HTTPHTTPISender.Send()in-processISender.Send()in-processReact SPA外部システム(給与/HR)BFF (Presentation)SPA 向けエンドポイントポータル別ビューモデル変換Backend Presentation外部連携 APIApplicationユースケースCommand/Query ハンドラーInfrastructureDB・外部APIファイルストレージDomainビジネスロジックエンティティ・値オブジェクト

サブページ

ドキュメント内容
CQRS アーキテクチャCommand/Query 分離、スナップショット方式、イベントソーシング不採用理由
Tax Calculation Core設計原則、11ステップパイプライン、速算表、端数処理
カテゴリ判定関数カリー化パターン、C# 実装イメージ、出力フラグ一覧
控除計算層控除分類・計算ロジック、CalculationDiff(変更影響表示)
カスケード再計算依存グラフ、全再計算方針、R8 横断依存
年度バージョニングTaxYearMaster、計算エンジンインスタンス管理、7年保持
テスト戦略Golden/Property/Boundary/Year-Versioned Tests
API 設計方針年分パス、テナントコンテキスト、API バージョニング