Проверяем каждое требование
Запушили код в GitHub — и сразу видите результат по каждому требованию этапа. С объяснением, если что-то не так.
Rate Limiting — алгоритм
2 из 3 ✓RateLimiter — содержит нужные поляAllow() — INCR + EXPIREВызов EXPIRE нужен при count == 1, чтобы ключ не остался в Redis навсегда. Без него окно rate limiting не сбрасывается.
Полезные материалы
Rate Limiting Algorithms — обзор алгоритмов
Redis INCR — атомарный инкремент