Several services could benefit from a global rate limiter service. Similar to statsd an logging, this kind of service would be a good fit in service-runner.
In the past, @Pchelolo has investigated & tested redis-based rate limiter libraries. The downside of those is a) complexity of needing to host & maintain another storage system, and b) a single point of failure.
An alternative is to use a DHT like Uber's ringpop for rate limiting. Their hyperbahn project actually implements a rate limiter on top of ringpop, so it might be possible to borrow most of the code.
The downside of DHTs like ringpop is that nodes running a particular service need to communicate, which means that at least one node IP needs to be communicated across the cluster. However, this requirement is not very different from redis.