@Override public <D extends Document<?>> D replace( D document, ReplicateTo replicateTo, long timeout, TimeUnit timeUnit) { return Blocking.blockForSingle( asyncBucket.replace(document, replicateTo).single(), timeout, timeUnit); }