17 Feb 2022

New Design Automation rate limit for GET workitem/:id

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 forge.help@autodesk.com  

Related Article


Posted By

Augusto Goncalves

Developer Advocate at Autodesk since 2008, working with both desktop and web/cloud apps using top technologies, like C#, JavaScript, NodeJS and any other that can solve problems and improve workflows. See my samples on Github and follow me on Twitter for updates.