#### 配送ネットワーク自動切り替え機能の設計・実装(2025)
##### 概要
- 配送プラットフォームにおいて、外部配送ネットワーク(Wolt、Uber Direct、Menu)への自動フェイルオーバー機構を設計・実装
- 1つのネットワークでマッチングがタイムアウトした場合、次候補へ自動切り替えして配送成功率を向上
##### 担当範囲
- 要件定義、設計、実装、テスト、リリースまで一貫して担当
##### 課題・問題点
- Wolt → Menu → Uber Direct と順番に試行する際、「どのネットワークで現在募集中か」「どのネットワークは試行済みか」を正確に管理する必要がある
- ネットワーク切り替え時のイベント(募集開始、マッチング、キャンセル等)を記録し、運用時に追跡可能にする必要がある
##### 最終的に選んだ案、決め手
- 状態管理: 各ネットワークに募集ステータス(`not_recruited`, `recruiting`, `matched`, `cancelled`)を持たせ、「選択されたネットワーク一覧」から「試行済みネットワーク」を引き算して次候補を算出する方式を採用。これにより外部API障害時も正しい状態を維持できる
- イベントログ: 配送ライフサイクル全体(募集開始、マッチング成功/失敗、キャンセル等)をDBに記録し、管理画面から参照可能にした。ログ記録失敗時はメイン処理をブロックせずSentry通知のみ行う設計とした
##### 実装時の工夫
- 自動切り替え基盤 → イベントログ記録 → タイムアウト時間の組織単位設定、と段階的にリリースしてリスクを最小化した