APIアプリケーション群からなるシステムのリニューアルプロジェクト
概要
保守性・拡張性の低下が課題となっていた既存の API システムを、ドメイン駆動設計(DDD)を用いてリニューアルするプロジェクトに参加しました。私は主にドメインモデルの再設計を担当し、既存システムのデータベース構造を詳細に分析した上で、ドメインの概念を反映した、より保守性・拡張性の高い新たなモデル構造を設計しました。この設計は新規システムの強固な基盤となり、その後のアーキテクチャ設計・実装においても主導的な役割を果たしました。
技術的な課題と解決
- レガシーシステムの技術的負債解消:複雑化・肥大化により「クリティカルすぎて触れない」状態に陥っていた既存システムを分析し、ビジネスドメインに基づいた新モデル構造へ刷新。エンジニア以外のステークホルダーも議論に参加できるよう、ドメインモデルを可視化・整理しました。
- Clean Architecture による依存関係の整理:Presentation / Application / Domain / Infrastructure の4層アーキテクチャを採用し、ビジネスロジック(Domain 層)をインフラから分離してテスタビリティと保守性を向上。アーキテクチャ設計方針を策定し、チームへの実装ガイドラインとして提示しました。
- 高負荷システムの再構築:約2,000 rps(ピーク約6,000 rps)のトラフィックに対応する新アーキテクチャを PoC 実装で検証し、既存の性能要件を満たしつつ拡張性を確保した設計を実現しました。
実績
- 約10ヶ月のプロジェクトにおいて、前半はドメインモデル設計、後半はアーキテクチャ設計と PoC 実装を主導
- チーム内のモデル設計議論に積極的に参加し、技術方針の意思決定に貢献
- 「触れないシステム」から「進化可能なシステム」への転換を実現
詳細
- 期間: 2022年7月〜2023年5月
- 担当:ドメインモデル設計、アーキテクチャ設計、PoC 実装、技術方針策定を主導。
- 関連技術:DDD, Clean Architecture, Java, Spring Boot
- 規模:6名のチーム(チームリーダー1名、開発者5名)。私は開発者として従事。
- 性能要件:約2,000 rps(ピーク約6,000 rps)