поход по сети, чтобы узнать лимит - невозможен. в некоторых случаях (это основной критерий, почему делал свою либу) это критично
например, вы хотите купить 1 млн долларов по цене 60.80 пока вы ходили по сети (условно 15мс), цена изменилась - 60.70 как результат - прибыль уменьшается или даже убытки появляются
spring-retry это немного для другого - чтобы клиент автоматически мог переотправить запрос, если он упадет.
resilience4j-ratelimiter - уже ближе, но они используют другой алгоритм (как я понимаю), поэтому нельзя накидать (например, покупка валюты по очень интересной цене) запросов (без бана) выше среднего и ждать
моя же либа - ограничить запросы (на клиенте) к серверу, чтобы не быть забаненным или не нарушить его работу, основывается на алгоритме sliding window
и как по вашему с помощью hystrix или аналогов, узнать прямо сейчас можно ли выполнять запрос и при этом: 1) не быть забанненым, если привысить лимит 2) не ходить никуда по сети, чтобы сохранить latency
в статье есть примеры внешних ограничений, если вам этого недостаточно, описал примеры
поправил. сложно пилить хобби проекты по вечерам и выходным
поход по сети, чтобы узнать лимит - невозможен.
в некоторых случаях (это основной критерий, почему делал свою либу) это критично
например, вы хотите купить 1 млн долларов по цене 60.80
пока вы ходили по сети (условно 15мс), цена изменилась - 60.70
как результат - прибыль уменьшается или даже убытки появляются
spring-retry это немного для другого - чтобы клиент автоматически мог переотправить запрос, если он упадет.
resilience4j-ratelimiter - уже ближе, но они используют другой алгоритм (как я понимаю), поэтому нельзя накидать (например, покупка валюты по очень интересной цене) запросов (без бана) выше среднего и ждать
моя же либа - ограничить запросы (на клиенте) к серверу, чтобы не быть забаненным или не нарушить его работу, основывается на алгоритме sliding window
и как по вашему с помощью hystrix или аналогов, узнать прямо сейчас можно ли выполнять запрос и при этом: 1) не быть забанненым, если привысить лимит 2) не ходить никуда по сети, чтобы сохранить latency
ждем ваших PR или issues на гитхабе) тесты не забудьте)
хорошая идея, можно добавить такую оптимизицию на будущее