Integration Tips: Managing Concurrency like a Pro!

As an Adoption Specialist, one of the most common questions customers ask is: “How can I optimize my integrations and improve performance?”

While there are several contributing factors, one of the most important (and easiest) ways to optimize your integrations is by following best practices for managing concurrency - here are a few high-level tips:

  1. Understand how much concurrency is available:
    Most applications enforce API governance and impose limits based on your service level. Before establishing your connections in Celigo, it’s important to review the documentation or understand what your limits are. For instance, you can locate your Concurrency Level in NetSuite (ERP) by navigating to Setup > Integration > Integration Governance. If you’re unsure of your limits, you can always set the “Target Concurrency” to the maximum number of 25, as long as you check the “Auto recover rate limit errors” box (see tip 3 below for more details).

  2. Distribute concurrency appropriately when creating connections:
    Once you understand the concurrency limits for your desired applications, you can adjust the levels in Celigo when creating new or updating existing connections. You can view or edit your Concurrency Settings by navigating to “Resources > Connections.” From there, find the connection you’d like to update in the list and click “Actions (on the far right-hand side of the page) > Edit Connection.” Next, switch the toggle to “HTTP” at the top of the page and scroll to “Advanced.” Under the Advanced options, you will see a field labeled “Concurrency Level.” This is where you can specify the number of concurrent requests you want to set for that connection. For new connections, the “auto recover rate limit errors” box will be checked, and this field will automatically populate with a default target concurrency, which you can adjust.



    When setting up these connections and applying concurrency, consider factors such as volume and scheduling to guide your decisions on how much to apply. For example, if you have 50 concurrency available in NetSuite and are integrating it with an e-commerce app, a CRM, and an HR platform- where the e-commerce platform has the highest and most frequent data volume, followed by the CRM, and then the HR platform- you might configure the NetSuite connection for the e-commerce platform to 25, the CRM to 15, and the HR platform to 10. This approach ensures that the highest volume integration receives the most concurrency, maximizing throughput.

  3. Set the “Auto Recovery” check box:
    Celigo’s platform can help your connection automatically recover from rate limit errors, and it’s one of the best features for managing concurrency. As noted above, this feature is already set by default for new connections, but if you’re updating previous connections or opted not to use this at the original time of creation, here’s how to access it. Under your “Advanced” Connection settings, you will find a box that says “Auto-recover rate limit errors.”


    By checking this box, if your connection encounters rate limit errors, the system will automatically reduce the concurrency level to 1 and gradually return to the original “Target” concurrency level you set, ensuring that records are eventually fully processed without any data loss. If you have any connections that don’t have a target concurrency level set (e.g., the “Target concurrency level” field is blank), you definitely want to ensure this box is checked. You can learn more about this feature in this article: Connection Setting - Auto recover rate limit errors.

  4. Adjust connections and concurrency based on seasonal trends or high-volume events:
    While the above tips are great to keep in mind for the initial setup and most use cases, there are times when you may want to consider adjusting your concurrency to maximize throughput during specific periods. This is most often the case during high-volume sales events (e.g., Holidays, Black Friday, Cyber Monday) or to account for seasonal trends. In these scenarios, creating a secondary connection will be useful for improving throughput on high-priority flows. Using the NetSuite - Ecommerce Platform integration referenced above, let’s say your concurrency for that connection is typically set to 25 for all flows, but you have an upcoming Black Friday Sale where order volume is expected to triple. In this scenario, you will likely want to prioritize Order, Inventory, and Fulfillment flows over Billing, Product, and Settlement flows. To help maximize throughput for the Order, Inventory, and Fulfillment flows, you can create a secondary NetSuite connection that will be assigned strictly to the lower-priority flows (Billing, Product, and Settlements) with a lower concurrency (e.g., 10). This adjustment will allow you to set the concurrency on the original connection for the Order, Inventory, and Fulfillment flows to a higher number (e.g., 15), providing more throughput for optimized processing. Here are two additional articles from our Knowledge Base that cover this in more detail:
    Optimize Multiple Connections to improve throughput
    Best Practices to optimize e-commerce app throughput & performance during high volume periods

By following these tips, you can maximize throughput, increase performance, and ensure your integrations run optimally, no matter the situation! :chart_increasing:

For more information on this topic, you can view this article and many more in our Celigo Help Center. :desktop_computer:

To discuss managing concurrency with a Celigo Expert, click here to book a session. :left_arrow:

9 Likes