概要
コードを書く前にシステムの構造を設計します。モジュール境界、データモデル、連携点、そして障害時の挙動。成果物は、貴社のチームが反論できるドキュメントであり、飾りの図ではありません。
進め方
01
現状把握
提案の前に、既存システムと制約、そして事業目標を整理します。
02
アーキテクチャ設計
構成・データモデル・連携点を設計します。決定は文書化し、場当たりにしません。
03
実装
短いイテレーションで納品。コードレビュー済みで、ステージング環境はいつでも確認できます。
04
テスト・QA
リリースごとに自動テストと性能・セキュリティ検証を実施します。
05
公開と運用
ロールバック計画とともに公開し、その後も監視と改善を継続します。
現状把握公開と運用
主なメリット
01
判断は理由とともに文書化
重要な選択はすべて決定記録になります。何を選び、何を退け、なぜそうしたか。二年後でも読み解けます。
02
実測値に基づく規模設計
資料上の数字ではなく、実際に計測したトラフィックとデータ量から設計します。
03
単一ベンダーに縛られない
代替のある構成要素を優先します。移行は時間の問題であり、不可能事にはしません。
技術スタック
DDDCQRSEvent SourcingPostgreSQLRedisTerraformAWS
ユースケース
予測可能にスケールすべきシステム
季節変動のあるプラットフォームで、速度と同じくらい取引あたりのコストが重要な場合。
複数アプリケーションの統合
三つの別々のシステムが同じデータを持ち、どれが正なのか誰も分からない状態。
監査やデューデリジェンスへの備え
投資・買収・認証の前にアーキテクチャを文書化する。