I'm working on a project that uses Elasticsearch as a primary data store for sensitive data that needs to be resilient to corruption. The indexes are split into 5 shards with 2 replicas across 3 machines.
Is there a built in way to send queries to all 3 nodes and check for consensus? Is this something I need to code explicitly in my client or can the data node I happen to connect to handle this for me?
Also, does Elasticsearch perform any parity/integrity checks on source and index data, aside from the potentially slow startup check when index.shard.check_on_startup
is enabled? Or does this need to be handled by a fault tolerant FS or in hardware with RAID-5/10?