バックプレッシャー(運用)
過負荷のシステムが、処理しきれない量の仕事を抱えて崩壊する代わりに、上流へ「速度を落とせ」と伝える仕組み。満杯になったら「止まれ」と言うキューであり、メモリが尽きるまで膨らみ続けるものではない。
問題は、速い生産者が遅い消費者に処理能力を超えて送り込むと、キューやバッファが何かが壊れるまで膨れ続けることだ(メモリ不足、遅延の増大、クラッシュ)。バックプレッシャーはその逆向きの信号で、消費者が自分の能力の限界を上流に伝え、生産者が速度を落とす。手段は、ブロッキング/有界キュー(満杯なら生産者が待つ)、フロー制御(ネットワーク層ではTCP、アプリケーション層ではReactive Streamsなどのリアクティブフレームワーク)、そして送り手を遅くできない場合に超過分を捨てるロードシェディング。効果は、負荷時に落ち方を制御でき、クラッシュせず安定することだ。関連する概念に、レート制限(受け入れ側の制限)、バルクヘッド(隔離)、サーキットブレーカー(壊れた依存先の呼び出しを止める)がある。分散システムやストリーミングシステムにおける中心的なレジリエンスの原則である。