【すろっとりんぐ】
スロットリング とは?
💡 あえてブレーキをかけて、システムを守る技術
📌 このページのポイント
スロットリングって、わざと遅くするってこと?なんでそんなことするの?
おもしろい!"なるほど、全員が使えるように制限してるんだね。"
そうそう。Twitter(X)のAPIも1時間あたりのリクエスト数に上限があるよね。それもスロットリングの一種。制限を超えると『429 Too Many Requests』っていうエラーが返ってくる。
フロントエンドでも使うことあるの?
あるよ!たとえばスクロールイベントは1秒間に何十回も発火するけど、処理を200ミリ秒に1回だけに制限すれば、パフォーマンスが大幅に改善する。lodashのthrottle関数なんかが有名だね。
スロットリングとデバウンスって何が違うの?
APIでレート制限を超えたらどう対処すればいいの?
429レスポンスのRetry-Afterヘッダーに「何秒後に再試行してよいか」が書いてあることが多いから、それに従うのが基本だよ。指数バックオフ(1秒→2秒→4秒→8秒と待ち時間を倍にしていく)で再試行するのがベストプラクティス。ベテランエンジニアは事前にレート制限を把握して、クライアント側で自主的にスロットリングをかけるんだ。これを「クライアントサイドレートリミティング」と呼ぶよ。
📖 おまけ:英語の意味
「Throttling」 = 絞る、制限する
💬 エンジンのスロットル(出力調整弁)から来ており、全開にせず適切に絞るイメージ