I have a service A which calls another service B (and some others) via REST APIs. The problem is service B has a very low capacity and it only handles 3 requests/second so many calls made to my service A are failing due to timeouts calling service B.
Is there any way to solve this issue? I was thinking about enqueue the calls to service B so at least calls to service A don't fail and also rate limiting my service A but I would like to see if there is any way to bypass service B limits somehow.
BTW, I don't have access to modify service B.
Routing between services is always an issue when you have to do it programmatically. Orchestration is a modern and elegant solution so that not only services A and B are not "glued" but you can easily manage rate limits, timeouts directly in the workflow definition. Check out the open source https://github.com/netflix/conductor You can even try it without installing anything by using Orkes conductor's playground (dev sandbox): https://play.orkes.io