code: @Override
    public Task<Void> delete(String path, int version) {
      return Task.async("zkDelete: " + path, () -> {
        SettablePromise<Void> promise = Promises.settable();
        _zkClient.delete(path, version, (int rc, String p, Object ctx) -> {
          KeeperException.Code code = KeeperException.Code.get(rc);
          switch (code) {
            case OK:
              promise.done(null);
              break;
            default:
              promise.fail(KeeperException.create(code, p));
          }
        }, null);
        return promise;
      });
    }
docs: {@inheritDoc}