There are a lot of applications out there, that a built on top of querying remote APIs with their own rate limits. With this scaling becomes a bit more problematic and choosing right architecture pattern can be rather hard.
I will try to describe problem as best as I can.
Imagine we have some API with:
daily limit of 1000 calls per client (per his API key, for example) per day
concurrent limit around 100 calls per second (we will never know the exact amount)
What architecture should one choose, if he want to make 3000 requests? With daily limit it is straightforward - we just store that state somewhere and that’s it. The question is how to deal with concurrent limit. Using queue? Resorting to monolithic app, launched once, so it can always monitored sent requests?
Basically I want to understand a best practice to build something like https://github.com/picsoung/stackoverflowmonitor but on bigger scale.