code: public static Iterable<Map<String, Object>> scan(final DataStore dataStore,
                                                       final String table,
                                                       final @Nullable String fromKeyExclusive,
                                                       final long limit,
                                                       final boolean includeDeletes,
                                                       final ReadConsistency consistency) {
          return RestartingStreamingIterator.stream(fromKeyExclusive, limit,
                  new StreamingIteratorSupplier<Map<String, Object>, String>() {
                      @Override
                      public Iterator<Map<String, Object>> get(String fromToken, long limit) {
                          return dataStore.scan(table, fromToken, limit, includeDeletes, consistency);
                      }
  
                      @Override
                      public String getNextToken(Map<String, Object> object) {
                          return Intrinsic.getId(object);
                      }
                  });
      }
docs: Retrieves up to {@code limit} records from the specified table.  The records will be returned in a deterministic
  order but not sorted alphabetically by key.  If {@code fromKeyExclusive} is not null, the scan will start with
  the first record that follows the specified key in the returned sort order.