/note/tech

リトライと冪等性のデザインパターン

大規模なデータに触れることが日常茶飯事になっている今日この頃。この分野のおもしろいところは、いつまで経っても終わらないプログラムを簡単に作れてしまうことかもしれません。エラー処理、リトライそして冪等性*1の3つを抑えていないプログラムは、小規模なデータなら問題ないが、データ量が多くなると使い物にならなくなる可能性が大です。

大規模データをバッチ処理するケース以外でも、リトライは一般にプログラムの信頼性に関わる重要な問題です。

そんなわけで、リトライに関わるいくつかのデザインパターンを、連載でまとめておこうと思います*2。

では、第1回は背景から:

パターン1:IDを付けてCREATEを冪等にする

パターン2:エラーを区別してDELETEを冪等にする