1. 12 Oct, 2022 2 commits
    • Matthew Slipper's avatar
      proxyd: Integrate custom rate limiter · 01ae6625
      Matthew Slipper authored
      Integrates the custom rate limiter in the previous PR into the rest of the application. Also takes the opportunity to clean up how we instantiate Redis clients so that we can share them among multiple different services.
      
      There are some config changes in this PR. Specifically, you must specify a `base_rate` and `base_interval` in the rate limit config.
      01ae6625
    • Matthew Slipper's avatar
      proxyd: Custom rate limiter implementation · c2b8efac
      Matthew Slipper authored
      Our current proxyd deployment does not share rate limit state across multiple servers within a backend group. This means that rate limits on the public endpoint are artifically high.
      
      This PR adds a Redis-based rate limiter to fix this problem. While our current rate limiting library (github.com/sethvargo/go-limiter) _does_ support Redis, the client library it uses is not type safe, is less performant, and would require us to update the other places we use Redis. To avoid these issues, I created a simple rate limiting interface with both Redis and memory backend.
      
      Note that this PR only adds the new implementations - it does not integrate them with the rest of the codebase. I'll do that in a separate PR to make review easier.
      c2b8efac
  2. 10 Oct, 2022 7 commits
  3. 09 Oct, 2022 2 commits
  4. 08 Oct, 2022 12 commits
  5. 07 Oct, 2022 15 commits
  6. 06 Oct, 2022 2 commits