Итак, ваше приложение падает под нагрузкой. Нужно что-то делать, но
вертикальное масштабирование дорогое, горизонтальное сложное, а кэш уже
не помогает? Rate limiter спешит на помощь! Rate limiter тарифицирует количество запросов, чтобы вашим приложением
не злоупотребляли боты или реальные люди. Помните тот момент, когда вы
третий раз просите прислать смс у сервиса, а вам говорят, что пришлют
только через какое-то время? Или вы несколько раз вводите неверно логин и
пароль, а сервис в ответ просит подождать некоторое время? Rate limiter
работает по похожему принципу, но у него под капотом может много больше
алгоритмов, которые мы разберём. Вообще, rate limiter может быть внешним или внутренним. Внешний работает
как прокси, принимает запрос, делает обработку, отклоняет или передаёт
запрос вашему приложению. Внутренний rate limiter расположен внутри вашего приложения, может работать как middleware. Главное отличие в том, что внутренний может работать как библиотека на
вашем язы