Throttle and queue up API requests due to per minute

Currently I got some issues related with API request.

I used timer for triggering API. My timer picked up data at every 8 min and triggering API.

My problem is :  E.g My API .... 10 request in each min...

                                The other system can accept and process 3 request in each min.

 I'm looking for any help, perhaps a library or plugin that already exists for block, sleep, throttle, allocate, manage, the many simultaneous requests that are firing off asynchronously and limit them to say 3 request in each minute. 

How can control this problem at outsystem?

Please help me the above solution.

Hi,

I'm not aware of a library that would handle this out of the box as it would be specific to each API. 

What you could do is create an Entity and implement the request limiting on your end. You could either keep a log of your calls and not call the API if you called it too many times in the last minute, or you could process the error message (assuming it's a recognizable structure) and implement something like exponential backoff.

There is no limit on the OutSystems side of things, so like Afonso said, if you want to limit how often you call an external API, keep track of when you sent the last request, and do not send a next one until you can do so.

If you want to use Timers only, you can use the Sleep Forge component to wait a number of seconds before continuing. Of course, you may also go the BPT route, but perhaps that's a bit overkill in this case.