【ふぉーるばっく】

フォールバック とは?

最終更新:
💡 本来の方法が使えないときに備える「代替手段」

本来の方法が失敗したり利用できなかったりしたときに使う代替手段。キャッシュや簡易表示などが例ですが、代替結果が許容できるか、代替先も動くかを確認する必要があります。

📌 このページのポイント
フォールバックの仕組み リクエスト ユーザー メインサーバー ✕ 障害発生 応答なし 条件を確認し代替へ フォールバック先 ✓ 正常稼働 代替サーバー 応答 成功 メインが使えないとき、自動で代替手段に切り替える仕組み 代替先の容量・データの鮮度も確認する 図は代替応答の一例。常に成功する保証はない
フォールバックのイメージ
ひよこ ひよこ
フォールバックは失敗したときのプランB?
ペンギン先生 ペンギン先生
そうだよ。例えば最新情報を取得できないとき、更新時刻を示して保存済みの情報を表示する方法がある。求められる正確さによっては、代替せずエラーを伝える方が適切なこともあるんだ。
ひよこ ひよこ
リトライと同じ?
ペンギン先生 ペンギン先生
リトライは同じ処理をやり直すこと。フォールバックは別の結果や方法へ切り替えることだよ。待ち時間と試行回数を決めずに組み合わせると、かえって遅くなったり負荷を増やしたりするね。
ひよこ ひよこ
古いデータでも返せば安心?
ペンギン先生 ペンギン先生
価格や残高など、古い値を最新として使うと困る場面があるよ。代替結果の有効期限や、表示だけに使うのか処理の判断にも使うのかを決めよう。
ひよこ ひよこ
ペンギン先生 ペンギン先生
失敗が続く相手への呼び出しをいったん止める仕組みがサーキットブレーカーだよ。その間、代替結果を返すか、利用できないと伝えるかを別に設計するんだ。
ひよこ ひよこ
代替先を用意すれば必ず止まらない?
ペンギン先生 ペンギン先生
保証はないよ。代替先も同じ障害の影響を受けたり、切り替えで負荷が集中したりする。正常時だけでなく、失敗から切り替える経路もテストしよう。
もっと詳しく知りたい人へ

決済がタイムアウトしたら別の決済へ切り替えてよい?

タイムアウトだけでは元の処理が失敗したと確定できません。成功したのに応答だけ失われた可能性があるため、処理状態や重複防止の仕組みを確認します。代替操作を自動で重ねると二重処理になり得ます。

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「フォールバック」って出てきたら「本来の処理が失敗したときの代替手段をあらかじめ用意すること」と思えればだいたいOK!
📖 おまけ:英語の意味
「Fallback」 = 退却、代替手段
💬 fall back(後ろに下がる)が語源で、前に進めないときに一歩引いて別の方法をとるイメージ

参考資料

← 用語集にもどる