Thanks, looks quite useful.<p>However it seems based on <a href="https://github.com/uber/ringpop-go" rel="nofollow">https://github.com/uber/ringpop-go</a> which is marked as no longer active...<p>What are you using to implement rate limiting ?
If I’m reading this right, is it possible to use the sidecar technique to install this along keep my existing load balancer architecture? For example, if every server has an haproxy frontend, and I install this sidecar on each server, how do I interact with it from haproxy?<p>Also, there was an HN thread last year from stripe with a good discussion of distributed rate limiting: <a href="https://news.ycombinator.com/item?id=13997029" rel="nofollow">https://news.ycombinator.com/item?id=13997029</a>
The project looks cool. Just want to understand how counter syncing works here, have you implemented CRDTs? Since, everything is in RAM, if service goes down, all counters' data will be lost. I believe, in case of API gateways some kind of durability is needed, if we need to rate limit based on consumer keys.
Skimming the bucket code, it appears that the rate-limiting information is stored in a map. It doesn't appear to implement an LRU or attempt to clean up stale entries.<p>If I feed this user-supplied keys such as IP address or cookies, doesn't this mean it will grow without bound?
Also biased, but if you need the functionality and don’t want to run it yourself there is <a href="https://www.prefab.cloud/documentation/basic_rate_limits" rel="nofollow">https://www.prefab.cloud/documentation/basic_rate_limits</a>