...
For any fetch requests, ReplicaManager will proceed with making a call to readFromLocalLog, if this method returns OffsetOutOfRange exception it will delegate the read call to RemoteLogManager.readFromRemoteLog and returns the LogReadResult. More details are explained in the ThreadPools RLM/RSM tasks section.
Follower Requests/Replication
For follower fetch, the leader only returns the data that is still in the leader's local storage. If a LogSegment copied into remote storage by a leader broker, follower doesn't need to copy this segment which is already present in remote storage. Instead, a follower will retrieve the information of the segment from remote storage. If a Replica becomes a leader, It can still locate and serve data from remote storage.
...
RLM/RSM tasks and thread pools
Remote storage (e.g. S3 / HDFS) is likely to have higher I/O latency and lower availability than local storage.
...