はじめに このページを読んでわかること
更新系APIのタイムアウトで発生する課題でサーバ間の状態不整合の解決策として、サーバAから更新リクエストを再送する(リトライ)する設計において考慮すべきことをメモしておく。
やってはいけない設計
念のためやってはいけない設計をメモしておく。
更新リクエストの必須パラメータ(RequestID)
サーバAが設定する一意なパラメータが必須となる(ここではRequestIDと定義する)。
サーバBは同一のRequestIDを受信した場合、あらたなデータを生成しない。
複数のタイムアウト
複数回リトライしてもレスポンスが受領できない場合、リトライだけでは状態不整合が解決しないため、リトライ以外の方法で解決する必要がある。
リトライの上限回数に達してもリトライが成功しないことをリトライアウトという。
結論
リトライにより状態不整合をできるケースもあるが、以下が課題として残る。
- 更新リクエストのリトライアウト