A base class for operations that need to perform a read operation on a single shard copy. If the operation fails,
the read operation can be performed on other shard copies. Concrete implementations can provide their own list
of candidate shards to try the read operation on.
Tells whether the action is a main one or a subaction. Used to decide whether we need to register
the main transport handler. In fact if the action is a subaction, its execute method
will be called locally to its parent action.