App search - Engine Sharding

Hi there :wave:

I wanted to ask about sharding or distributing engines geographically. Some use cases come to mind:

  • customers that would like to have their data in a given country for security or other reasons.
  • our company wanting to serve certain customers from locations as close as possible to them to improve latency/performance.
  • simply sharding for scalability reasons

Given the above, then, I might have most of my customer data in app search engines located in France (and sharded by a given field) and would like others to be in the US.

Would this be possible in Enterprise App Search?

Thanks in advance.

Hi @Gerardo_Zenobi :

It is not possible to have a single, unified Engine that relies in different Elasticsearch clusters.

An alternative would be to create separate Enterprise Search instances on different locations, and route the user to them depending on user location or the data to be queried.

1 Like

Thanks @Carlos_D

When you say Enterprise Search Instances are you talking about creating a new deployment/cluster ? I don't see any other place where one can create "instances" and select where they would be located.

Is there functionality to clone/duplicate a deployment ? Otherwise I imagine the creation of the engines and their configuration would need to be done manually ?

When you say Enterprise Search Instances are you talking about creating a new deployment/cluster ?

Yes!

Is there functionality to clone/duplicate a deployment ?

Not yet. I'm afraid that Enterprise Search is not compatible with Cross-Cluster Replication.

It is doable, and we will publish a blog soon to address this issue.

I imagine the creation of the engines and their configuration would need to be done manually ?

You could use the APIs for saving the engine settings, and recreate the engine and its documents via API as well.

1 Like