Hi Asad, Please use the query method. For reading directly from the underlying data storage, we should always read from the Leader (it could be tricky to implement failover). Even reading from the Leader, it could get stale data in some cases.
When using the query method, Ratis can be configured to support linearizable-read, read-from-followers and read-after-write consistency. Linearizable-read guarantees no stale data. When linearizable-read is enabled, clients can also read from followers with the same guarantee. When read-after-write consistency is enabled, a client will always read the results after the writes from itself (otherwise, a read can return before a write, even if the write async call is submitted before the read async call). Tsz-Wo
