SYSTEM DESIGN INTERVIEW Chapter4の感想・まとめ
読書まとめ始めました
システム設計はもともと興味あって今回は気になったトピックをまとめてみることにしました。システム設計を学ぶ機会ってそのシステムを設計する機会がなかなかないと感じていて。選んだ本は面接対策の本ぽいですが、評価も良く、これのケーススタディを見て感想とかをまとめてみたいと思います。はじめはRate Limiterです。ちなみに3章までは一般的なシステム設計についてでしたが、そのお話も概念が整理されていて良かったです。
概要
Rate Limiterの意義を説明しつつ、アルゴリズムの種類とメリ・デメを説明している。丁寧に説明されているので英語でも全然理解できる。この本で良いのは参考文献が付いて学びたかったら詳細なページや本を参照できることかなと思った。各社の実装のblog postのリンクなどがあって、これなら深く掘り下げることができる。
後半はアーキテクチャな話になり、分散環境でのリクエストのカウンターの競合状態の管理やカウンターの同期、パフォーマンス最適化のお話をしていた。
おわりに
Rate Limiterってわりと身近に使うシステムだけど、ありもののWAFやRate Limiterを使うことになるので自分で設計するならどうする?という視点を持てたのはよかったです。
今回は面白いなと思ったのは2つあって、1つはリクエストのカウンターの競合状態の扱いです。詳しくはこちらを見てみると良いとのことなので見てみようと思う。二つめはHTTP Response Headersのお話で、こんなものあるんだなぁという学びがあった。429だけでは伝わらないこともあるので、まああったほうがよいというのはそうなのだろうけど。