At work we have 2 different datasets that are searched by 2 different types of "consumers", through a common API. We'd like to have some level of isolation between the 2 data types. Specifically we'd like separate query queues and thread pools for each type, so if one of the consumers misbehaves it doesn't affect too much the other. We've had already some problems with the query queue being full.
The simple solution would be to just create 2 different clusters on the same machines but this common API is designed to search in only one ES instance. Having this API talk to a tribe node connected to both clusters might solve the problem but, would that provide search isolation? Or does the tribe node use internally also one query queue and thread pool and we are just moving the conflict somewhere else?
Thanks in advance.