Sliding Window Algorithm - Designing a Rate Limiter | OneNoughtOne