Like most web services, each Design Automation endpoint has a rate-limit that protects the service and improves availability. To best serve all of our customers, the current GET workitem/:id rate limit of 10,000 RPM (requests per minute) will be adjusted in two steps:
May 23rd, 2022: 1,000 RPM
August 22nd, 2022: 150 RPM
You will receive a notice if your application is currently exceeding the new limit and may be affected. Please ensure your application properly handles the 429 error code. For more general details, please review the Improving app resilience article.
How do I adjust my app?
After defining the activity, you can execute the automation via the POST workitems endpoint and check for progress via GET workitems/:id. This approach works, but is not recommended. Depending on how long the automation takes, your application may call GET workitem/:id thousands of times before its completion. Here are 3 possible solutions we suggest:
1. Handle 429
As your application is already calling GET workitem/:id every interval, add an error check for 429 and check the response header for retry-after value, which indicates how long to wait (in seconds) before retrying. Please note that this limit applies to all workitems.
2. Implement onComplete callback – recommended for server-side applications
For best performance, the best approach is to submit a workitem with onComplete callback URL. When the workitem finishes executing, Design Automation will notify your application providing all necessary details, including the workitemId and complete execution summary. More information about the onComplete callback. If your firewall needs specific permissions, please review the list of Design Automation IPs.
3. Implement WebSocket - recommended for mobile or OS native applications
When using Forge Design Automation directly from a client device (for example, a desktop machine, mobile phone, or laptop) you cannot set up onComplete or onProgress arguments that point back to the client device. Websocket allows to open a direct connection between Design Automation server and the client app. More information about the WebSocket API.
Questions? Please contact firstname.lastname@example.org