Understanding Unito's Performance: A Guide to Speed Expectations

Here's a closer look at why your flow's sync speed can vary, may appear slow, and other performance factors.

In this article:

Unito's Sync Platform is dedicated to providing users with a smooth, efficient experience with quick, reliable 2-way sync for your data. 

This article is meant to take a closer look at technical limitations in Unito's performance, notably when dealing with large volumes of data or when your flow includes tools that lack webhook support. Here's more general information on how fast Unito can sync your data.

What are webhooks and how do they affect performance?

Webhooks are essentially notifications sent by an app or tool (which supports webhooks) about any new changes within the app, e.g., if a task or other work item is edited or modified in some way.

What is webhook support?

If the integration supports webhooks, then Unito knows immediately when a change has occurred that needs to be synced. 

Without webhooks, Unito will only check for updates at pre-determined intervals (e.g., every five minutes).

Not all Unito integrations offer webhook support, which could potentially lead to data syncing less frequently. We are constantly striving to add this feature to more integrations to enhance the user experience.

What are rate limits and how do they affect performance?

Each app or tool we connect has its own set limits on the number of requests a specific user can make within a given timeframe. These restrictions, known as "rate limits," significantly influence our service speed.

How do rate limit requests work?

A "request" is essentially a single instruction or question that Unito asks another app or tool. 

Example: 

Imagine you set up a flow to sync 1,000 Asana tasks with Unito. It's possible that mid-way through syncing your tasks, Unito will suddenly hit Asana’s rate limit at task 537. 

This could happen when Asana's system (the API) reaches a limit on how many requests can be processed at once, thus putting the remaining 463 tasks on hold for a brief period.

When this occurs, Unito will halt its syncing activity temporarily, to avoid triggering further rate limits, before attempting to resume the sync.

How Unito Manages Rate Limits

Unito employs a method known as throttling to avoid overwhelming tool APIs. We meticulously control the request rate to ensure we don't exceed the rate limits established by each app or tool.

This is crucial to cater to our extensive user base, but can introduce delays in the synchronization process.

The goal is to optimize the syncing process for as many users as possible without compromising the functionality of the tools themselves.

What are response times and how do they affect performance?

The speed of Unito is inherently tied to the response time of the APIs we rely on. Response time is the total time it takes to send a request to the API and get a response back, and it can vary greatly from one API to another, and even from one request to another.

How Unito’s sync platform is affected by response times

Unito's User Interface (UI) is dynamic, meaning it routinely calls APIs to load lists and perform other functions at various stages. 

Example: Imagine a Jira instance containing thousands of projects. When selecting one project out of thousands to sync, simply loading that list of projects in Unito may take some time.

Conversely, if your Jira label field only has a few options to choose from, those options will load almost instantly. 

While this offers a real-time, responsive experience, it can sometimes lead to delays, especially during high-traffic periods or when dealing with large volumes of data.

Balancing Data Freshness and Speed

We understand the importance of having up-to-date information that syncs quickly. For all of the reasons outlined above, it’s crucial to consider how best to prioritize which data points need to be updated soonest. 

If you’re constantly dealing with large volumes of data, it may be worth creating flows with stricter rules to sync the most important work items first. Then, create a second flow for additional information that isn’t as urgent. You can achieve this simply by, for example, including only one status or label in the more concise flow, and excluding that same label from the broader flow. 

Got feedback? We're continually fine-tuning our processes to find the optimal balance for all of our users. Submit a Unito feature request to let us know what you'd like to see in the next update to our integrations.