API呼び出しの失敗を繰り返し失ったため、リトライライブラリ... ノート

API呼び出しの失敗を繰り返し失ったため、リトライライブラリを構築しました

既存のリトライライブラリは、リトライを使い果たした後、単にエラーをスローするだけで、失敗したリクエストに関する情報が失われる原因となります。これにより、サイレントにドロップされたWebフックなどの問題を診断することが困難になります。著者は、この問題に対処するために設計されたTypeScriptライブラリであるsmart-retryを開発しました。smart-retryは、AxiosおよびFetchクライアントにドロップインサポートを提供し、汎用的な関数ラッパーを超えています。重要な機能は、すべてリトライが使い果たされたときに、失敗したリクエストをディスクに自動的にログ記録することです。このログには、URL、メソッド、ヘッダー、および本文などの重要な詳細が含まれており、後で検査したり再実行したりできます。対照的に、従来のライブラリは、エラーをスローするとこの情報を失います。ライブラリは、デフォルトでネットワークエラー、タイムアウト、429、および5xx応答のみをリトライしますが、この動作はカスタマイズ可能です。著者は、ライブラリを改善するための貢献を求めており、特にAxiosのタイムアウトエラー処理の修正、テストカバレッジの追加、指数バックオフの最大遅延の実装、パブリック型使用の削減、およびログローテーションのドキュメント化を求めています。セットアップ手順はCONTRIBUTING.mdファイルで入手可能であり、フィードバックを歓迎します。