Multi-Region Deployments

The primary deployment region of all Coveo Cloud Organizations is the Eastern United States (US East). If that’s the only region where your organization is deployed, this implies that all end-user search requests must travel to that region and back. Thus, end users located outside of North America would experience significantly higher search request delays than those in North America. In situations where it’s vital to keep query times low, this may not be acceptable.

To handle such scenarios, Coveo currently offers the possibility of deploying your organization to two possible satellite regions: US West and Ireland. For pricing, or information about additional regions that may be added in the future, contact Coveo Sales.


  • Multi-region deployments are only available for non-HIPAA, non-Elasticsearch, production (i.e., not non-production), Coveo Cloud V2 organizations.

  • The service automatically routes the query to the closest index. You can’t manually force queries into one particular index.

Satellite Regions

More concretely, satellite regions contain duplicates of the content and services required for your end users to perform queries, namely your index, ML models, and the Search API. When your end users perform queries, the service automatically routes them to your closest deployment, which can dramatically reduce query time. In addition, if a satellite deployment encounters an issue, the service routes queries to your primary deployment region, namely US East.

The Coveo Cloud indexing pipeline, Usage Analytics service, and main Platform services remain in the US East region. Only the services used to answer search queries are duplicated. This makes the satellite deployments light and simple to configure (see Configuration).

Primary region Satellite regions

Complete Coveo organization:

  • Search API
  • ML
  • Index and indexing pipeline
  • Usage analytics
  • etc.

Only what's required to handle search requests:

  • Search API
  • ML
  • Index

Search Response Time Examples

While the following are real-life examples, they’re merely examples, meant to illustrate the logic of multi-region deployments. Exact figures vary significantly from organization to organization, from query to query, and from caching along the Internet.

  • You have no satellite deployment. When an end user located in Paris makes a query, this query goes to your primary and only deployment, in the US East Region. The results then travel back to Paris. The query suggestions reach the end user after a total of 283 milliseconds, and the results after a total of 441 milliseconds.

    You now add a satellite deployment in Ireland. When an end user located in Paris makes a query, this query is now automatically routed to your Ireland deployment. The query suggestions reach the end user after a total of 102 milliseconds, and the results after a total of 168 milliseconds.

    The following table summarizes the above scenarios:

    Before After
    Query time (ms) 441 168
    Query suggest time (ms) 283 102
  • Your organization is currently deployed in a single region, namely US East. You then decide to also deploy it in the US West and Ireland regions, and compare the query times before and after, from different regions across the world:

    Query origin Query time before (ms) Query time after (ms)
    US West 388 188
    US Central 164 164
    US East 110 110
    Brazil 645 637
    France 441 168
    India 1042 766
    Australia 1098 874
    Japan 855 565


Assuming you have contacted Coveo Sales and have taken care of the administrative tasks required to deploy your organization over several regions, the technical configuration is almost seamless.

Using the Search API

When making a Search API request to a multi-region organization, make sure to use the endpoint rather than Requests to other Coveo APIs don’t change.

Using the Coveo JavaScript Search Framework

When using the Coveo JavaScript Search Framework, make sure to setup your search endpoint to rather than

Coveo.SearchEndpoint.configureCloudV2Endpoint("mycoveocloudorganizationid", "**********-****-****-****-************", "");
Recommended Articles