銀行エンジニアリング Lab 05:Operations Lab(障害 → インシデント → 調査 → 復旧)
結果不明の送金という障害を起こし、Operations Centerで見つけ、追跡し、インシデントとして記録し、照会で復旧するまでを一通り体験します。
v8以降に実装した台帳・記帳エンジンなどを実際に動かし、正常時と異常時の両方から銀行システムの構造を学ぶ。
Prerequisite: BANKING SYSTEMLEARNING GOALS
このページで学ぶこと
- キューからの初動
- 追跡画面の読み方
- インシデントの記録と復旧の確認
PLAIN LANGUAGE
まず、ここだけつかむ
結果不明の送金を Operations Center で見つけ、追跡し、インシデントとして記録します。
照会で状態を事実に合わせて復旧し、キューから消えることを確かめます。
原因と対応を記録して解決し、管理責任者がクローズします。
DIFFICULT PARTS, STEP BY STEP
難しいポイントを、順番にほどく
専門用語を覚えることより、「なぜ必要か」「このシステムのどこで使うか」を理解することが目標です。
初動
問題を見つけた直後の最初の行動です。
誤った初動が被害を広げるためです。
Runbookの「再送しない」から始める。
復旧の確認
直ったことを客観的に確かめることです。
直ったつもりの見落としを防ぐためです。
キュー・照合差異・決済バッチの件数が0に戻る。
事後記録
原因と対応を残すことです。
組織として学ぶためです。
インシデントの root_cause と resolution。
準備
seed で、ひかり架空銀行宛の結果不明の送金1件と、それに関連付いたインシデント1件が作られています。
open 'http://localhost:54336/local/login?as=operator&next=/admin/ops-center'演習
| 演習 | 操作 | 観察すること |
|---|---|---|
| 1. 見つける | SYSTEM STATUS と Exception キューを見る | Payments が RED、結果不明が HIGH で先頭 |
| 2. たどる | 「原因を追跡」 | 状態の履歴、決済システム側は ACCEPTED、資金確保の記帳、関連インシデント |
| 3. 記録する | インシデントを調査中にし、メモを残す | タイムラインに STATUS・NOTE が追記される |
| 4. 復旧する | 担当画面(支払詳細)で照会 | SETTLED になり、キューと照合差異から消える |
| 5. 解決する | 原因と対応を入力して解決 → manager でクローズ | 原因なしでは解決できない。operator はクローズできない |
振り返り
- 最初の5分で何を確認し、何をしてはいけなかったか
- インシデントの記録だけを読んだ人が、何が起きてどう直したか分かるか
CHECK YOUR UNDERSTANDING
3問で理解チェック
答えを頭の中で考えてから、各項目を開いて確認してください。
Q1Labで復旧に使う操作は?
支払詳細での照会です。
Q2インシデントをクローズできるのは?
管理責任者です。
Q3照会後、Exceptionキューの項目はどうなりますか?
状態がSETTLEDになり、自動的に消えます。
完全に暗記する必要はありません。大切な考え方を説明できそうなら押してください。
SOURCE TRAIL
根拠と関連教材
CURRENT IMPLEMENTATIONは確認したrepository内の実装です。HISTORICAL IMPLEMENTATIONは導入・修正の履歴で、後続migrationによる再定義があり得ます。RELATED LESSONは教材への案内で、実装の一次Sourceではありません。ASSUMPTIONは仮定、UNKNOWNは未確認を表します。
確認基点: d02eae8914f39cbf06bfe422dc39c71886f82b3e / 2026-09-11。稼働環境への適用確認: UNKNOWN。パス実在の自動検査と、記述した技術的事実の確認は別です。
Implementation Status: IMPLEMENTED IN MINIBANK(この教材が扱うコードの範囲)
- RELATED LESSON/docs/be-incident-recoveryインシデント管理
- CURRENT IMPLEMENTATION
src/app/admin/(protected)/ops-center/page.tsxOperationsCenterPage()Operations Center画面 - CURRENT IMPLEMENTATION
scripts/banking/v12-operations.test.mjs例外・照合差異・承認キュー、追跡、インシデント、営業日外の停止のDBテスト