0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

外部API呼び出しチェックリストmemo

Posted at

呼び出し処理編

項目 備考
呼び出し失敗時の動作を検討したか
呼び出し失敗時に、外部から取得した値ではなくデフォルト値を保存するか 呼び出し失敗とわかるようにする
保存するデフォルト値は関係部署と合意できているか 謎のデフォルト値で利用者が混乱することがある
呼び出し失敗はトレース、検知できるか ログ、モニタリング、trace idなど
ある呼び出しAが外部API側でトレースできるか ログ、モニタリング、trace idなど
タイムアウト時間は検討したか。矛盾はないか OS, DB, ライブラリといった各レイヤーにより自動的に設定されている部分もチェックする
呼び出す外部APIがwrite処理の場合、呼び出し失敗時のデータ不整合は検知できるか ログ、モニタリングなど
呼び出す外部APIがwrite処理の場合、不整合をあとで修正する機能はあるか 不整合修正バッチ、補償トランザクションなど
呼び出しは非同期か、同期か。非同期ならfork joinか、完全非同期か 同期だとウェイト時間分、リクエストの遅延が発生する。要求によっては非同期にできる。
非同期時、呼び出しキューはあふれないか 非同期処理がたまりすぎて消えてしまわないか。特に障害時
非同期時、シャットダウンしたとき呼び出しのキューは消えないか 消えて大丈夫ならOK
Circuit Breakerを導入しているか
接続先がフリーズ(L4接続可、L7応答なし)した場合は検討したか 障害試験しよう
呼び出し先の応答が遅延気味になった(常に1秒かかるとか)場合でも、呼び出し側の性能が問題ないか確認したか 障害試験しよう

リトライ処理編

|項目|備考|
|---|---|---|
|リトライを検討したか | いらないならOK|
|リトライは非同期か、同期か |同期だとウェイト時間分、リクエストの遅延が発生する。要求によっては非同期にできる。|
|リトライ数はトレース、検知できるか| ログ、モニタリングなど|
|非同期時、リトライのキューはあふれないか | 非同期処理がたまりすぎて消えてしまわないか。特に障害時|
|非同期時、呼び出し元がシャットダウンしたときリトライのキューは消えないか | 消えて大丈夫ならOK|
|複数回リトライする際、指数バックオフとジッターを導入しているか|http://aws.typepad.com/sajp/2015/03/backoff.html |
|リトライに優先順位をつけたい場合、リトライ番号を考慮しているか |必要あれば|

0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?