code: private <RowT> ServerStreamingCallable<Query, RowT> createReadRowsCallable(
        ServerStreamingCallSettings<Query, Row> readRowsSettings, RowAdapter<RowT> rowAdapter) {
  
      ServerStreamingCallable<ReadRowsRequest, RowT> merging =
          new RowMergingCallable<>(stub.readRowsCallable(), rowAdapter);
  
      // Copy settings for the middle ReadRowsRequest -> RowT callable (as opposed to the outer
      // Query -> RowT callable or the inner ReadRowsRequest -> ReadRowsResponse callable).
      ServerStreamingCallSettings<ReadRowsRequest, RowT> innerSettings =
          ServerStreamingCallSettings.<ReadRowsRequest, RowT>newBuilder()
              .setResumptionStrategy(new ReadRowsResumptionStrategy<>(rowAdapter))
              .setRetryableCodes(readRowsSettings.getRetryableCodes())
              .setRetrySettings(readRowsSettings.getRetrySettings())
              .setIdleTimeout(readRowsSettings.getIdleTimeout())
              .build();
  
      // Retry logic is split into 2 parts to workaround a rare edge case described in
      // ReadRowsRetryCompletedCallable
      ServerStreamingCallable<ReadRowsRequest, RowT> retrying1 =
          new ReadRowsRetryCompletedCallable<>(merging);
  
      ServerStreamingCallable<ReadRowsRequest, RowT> retrying2 =
          Callables.retrying(retrying1, innerSettings, clientContext);
  
      FilterMarkerRowsCallable<RowT> filtering =
          new FilterMarkerRowsCallable<>(retrying2, rowAdapter);
  
      return createUserFacingServerStreamingCallable(
          "ReadRows", new ReadRowsUserCallable<>(filtering, requestContext));
    }
docs: Creates a callable chain to handle ReadRows RPCs. The chain will:
  
  <ul>
  <li>Convert a {@link Query} into a {@link com.google.bigtable.v2.ReadRowsRequest} and
  dispatch the RPC.
  <li>Upon receiving the response stream, it will merge the {@link
  com.google.bigtable.v2.ReadRowsResponse.CellChunk}s in logical rows. The actual row
  implementation can be configured in by the {@code rowAdapter} parameter.
  <li>Retry/resume on failure.
  <li>Filter out marker rows.
  </ul>