At ClassDojo, we’ve recently been building out our push notification infrastructure. Our plans required a rate limiter that met the following criteria: Distributed: The rate limiter can be shared across multiple processes. This necessitated the use of a external key-value store – we chose Redis, because we use it elsewhere in the stack. Rolling Window: If we set a maximum of 10 message per minute,