Re: ネットワーク越しリトライ考

moznion.hatenadiary.com

  • サーバが脆弱という意味では弱者だけれども、一方でreadinessとかの豊かな情報が欠けているという意味ではクライアントもか弱い存在で、このミスマッチが根本的に問題を難しくしていると思う
    • 素朴なモデルだとクライアントは自身で完結して得られる情報からのみリクエストを制御しなければいけないけれど、サーバが許容できるかは個々のクライアントだけでは判断できないというのも難しい
    • クライアントにリトライを任せるというのもけっこう難しい話だと思っていて、クライアントはサーバに言わば計算機資源の外注をしたいことが多いはずで、リトライを重ねるとクライアントの資源も消費されていくっていうのも難しい
  • 利用者が、Web APIで言うSSKDsLSUDsなのかにもよりそうだけれど、メッセージを介してやりとりするアクターモデルにするっていうのが最もサーバが防御的に振る舞えると思う
    • メッセージブローカーにいわゆるサーキットブレイカー的な役割を負わせるかんじ
    • あるいはUDP的な、サーバが応答をしなくても良い = メッセージの到達不可能性を折り込んで、クライアントが常に悲観的に振る舞うっていうモデルもありそう。サーバではstrong consistencyは狙わない