I have an elasticsearch cluster that will be written to by multiple contributors. 90% of the write activity is reindexing existing documents in place to accommodate changes to attributes.
On the read side I have a bunch of 'subscriptions' which essentially poll with the same filter query and figure out deltas.
I found to my cost today that it was a dumbass thing to do to assume a query without a specific sort would return the results in a consistent order - it certainly doest.
What I would like some reassurance on is to validate my assumption that it is also important to ensure each read request for a given 'subscription' goes to the same node, else if I jump around the cluster I may get inconsistent results as the writes/reindexes propagate. To be clear, eventual consistency is tolerable here but I don't want to misidentify shard data propagation as a genuine data deltas.
To follow up on that, is it advisable to achieve this by using sticky sessions via a load balancer fronting the cluster?
Any advice greatfully received.