A) Simply pass a replicate_to number greater to 0 to the options for any of the storage operations and internally the operation will not return until the specified durability requirements are met. Note that the operation may succeed, while the durability requirements do not, so you should inspect the errors.
B) Simply set your operation timeout, then perform your get operation. If the get operation fails due to a timeout, you can fall back to using getFromReplica to read the data from an alternate node. Keep in mind the data returned from a replica may be stale, and is immutable on a replica server.
index is the only accepted option which specifies the specific replica server to read your data from. 0 indicates the first replica server, 1 indicates the second replica server and -1 is a special case indicating to request the document from all replicas, and return the document from the server who answers first.