System Design: Designing a Rate Limiter