@Override
  public Updater<T, CompletionStage<WriteResult>> update(Criterion<T> criterion) {
    return new AsyncUpdaterDelegate<>(reactive.update(criterion));
  }
Writable which uses {@link CompletionStage} as return type
criteria/common/src/org/immutables/criteria/repository/async/AsyncWritable.java