## プロジェクト概要
加盟店管理マイクロサービスの開発を担当。
特定サブプロジェクトのリーダー兼開発者としての役割を果たすこともあった。
## チーム構成
マネージャー: 1名
BP: 12名
メンバー: 3名
テックリード: 1名
## 担当業務
設計&実装&運用
見積もり、タスク&進捗管理、チーム間調整
## 開発・実装内容
### 1. 非同期連携機能の開発
Oracle上の加盟店マスタの更新をDebeziumで検知し、Kafkaを介して各マイクロサービスへドメインイベントを配信するデータ同期基盤を開発を行った。
マイクロサービス化に伴うデータベース分割により、他サービスから直接データを参照できなくなる課題があった。そのため、イベント駆動によるリアルタイム同期の仕組みを設計・実装し、データ整合性を維持できる構成を実現した。
また、Kafkaトピックキーの見直しやトランザクション処理の最適化を行い、イベント処理性能を改善もおこなった。
### 2. 非同期連携機能開発のプロジェクトリード
上記の案件プロジェクトリードを開発を途中から引き継ぎ、メンバー(プロパー2名、BP1~2名)のプロジェクトマネジメントを行っている。
基本設計をもとに開発計画を策定し、タスクへの分解、工数・工期の見積もりを実施。開発中は、仕様の曖昧さに起因する追加タスクが発生することもあったため、関係者との議論を整理して課題を明確化し、タスク化を実施。優先順位やスケジュールを適宜見直しながら開発を推進するとともに、関連コンポーネントチームとの調整も担当し、現時点で大きな遅延なく進行させている。
### 3. 同期APIによる依存の軽減
店舗情報管理マイクロサービスとの同期API(REST API)連携の改善を担当。
注文処理に必要な情報を同期API経由で取得する構成となっていたが、障害発生時にはカスケード障害につながるリスクがあった。短期間で同期APIを廃止することは難しかったため、サーキットブレーカーを導入し、障害時の影響を局所化できるよう改善している。