このレッスンの到達目標
環境の問題とアプリの問題を区別し、再現可能にする。
音声とインタラクティブ図解で学ぶ音声を再生すると、下のインタラクティブ図解と本文の段落ハイライトが連動して動きます。
TRANSACTION & IDEMPOTENCY LAB · AUDIO & INTERACTIVE
DBトランザクション境界・外部連携タイムアウト・冪等再送ラボ
明細更新途中のエラーや、会計連携APIの応答消失時に「データ不整合」や「二重計上」がなぜ起きるのか、パケットアニメーションで検証します。
データ更新と外部境界の挙動1. トランザクションなし(部分失敗)
受注明細を更新した直後にエラーが発生し、受注ヘッダー合計が旧金額のまま残った状態です。
設計・移行・運用の要点DB内部で明細と合計が300円不一致
DBのロールバックだけでは外部送信は取り消せません。連携IDによる冪等性、処理済み照会、照合(件数・金額)をセットで設計します。
コード以外の前提を記録する
実行にはランタイム、ライブラリ、設定、DBなどが関係します。バージョンや依存関係を固定し、起動手順、必要な設定、検証データを記録すると、別の担当者も確認できます。
Dockerは実行環境を定義する手段の一つです。コンテナ化しただけで、データ保存、バックアップ、権限、外部接続が解決するわけではありません。何をコンテナ内外に置くかを確認します。
ログと設定を安全に扱う
起動失敗、接続失敗、業務処理失敗を区別し、発生時刻、処理ID、エラー、直前の変更を調べます。AIに渡すログからは、秘密情報や個人情報を取り除きます。
環境変数や設定ファイルにある接続先が、検証用か本番用かを確認してから実行します。秘密情報をソースへ書き込まず、チームの管理方法に従います。
判断の練習
環境の比較では、秘密値を並べるのではなく、設定項目の有無、接続先の区分、利用する版、DBスキーマを確認します。起動直後の失敗と、操作後の失敗を分けて記録してください。
起動手順は別の担当者に試してもらいます。自分の端末にしかない前提が見つかった場合は、必要な設定名や手順を資料へ追加します。
押さえておきたいこと
- 環境の前提を記録する
- ログで問題の場所を絞る
- 接続先と秘密情報を確認する
読了記録と習熟度の確認は別です。