Учебный проект Rate Limiter для изучения подхода Sliding window log. Чтобы было интересней и для большой практики сделал, используя Redis. Сам проект web – сервиса сделан на .NET:
Сам алгоритм в файле: RateLimiterSingleton.cs
Учебный и не очень профессиональный подход так как для проверки превышения многократно обращаюсь к Redis. А это к тому же добавит и сетевые задержки между приложением и Redis. Если для такой задачи использовать Redis, то через Lua скрипт выполнять всё за один раз думаю будет намного круче ) Также с Lua можно и нужно реализовать атомарность процесса. В проекте атомарность не реализована.