Limit Types

Try it

Ratelim.it has limits available at all manner of granularites. Take particular notice of INFINITE since this is what will allow us to use Ratelim.it as a deduplifier.

limiter =  RateLimit::Limiter.new(apikey: "ACCT_ID|APIKEY")

# only need to do this on startup
limiter.create_limit("secondly", 1, RateLimIt::SECONDLY_ROLLING)
limiter.create_limit("minutely", 1, RateLimIt::MINUTELY_ROLLING)
limiter.create_limit("hourly", 1, RateLimIt::HOURLY_ROLLING)
limiter.create_limit("daily", 1, RateLimIt::DAILY_ROLLING)
limiter.create_limit("monthly", 1, RateLimIt::MONTHLY_ROLLING)
limiter.create_limit("yearly", 1, RateLimIt::YEARLY_ROLLING)
limiter.create_limit("onlyonceever", 1, RateLimIt::INFINITE)

Here are links to the relevant Java & Ruby source files.

Next, let's see how to configure caching and logging in the API client.