anchor.diff:  [source,java]
   .src/main/java/org/acme/vertx/Fruit.java
   ----
  -    public static CompletionStage<List<Fruit>> findAll(PgPool client) {
  -        return client.query("SELECT id, name FROM fruits ORDER BY name ASC").thenApply(pgRowSet -> {
  -            List<Fruit> list = new ArrayList<>(pgRowSet.size());
  -            for (Row row : pgRowSet) {
  -                list.add(from(row));
  -            }
  -            return list;
  -        });
  +    public static Uni<List<Fruit>> findAll(PgPool client) {
  +        return client.query("SELECT id, name FROM fruits ORDER BY name ASC")
  +            .map(pgRowSet -> {
  +                List<Fruit> list = new ArrayList<>(pgRowSet.size());
  +                for (Row row : pgRowSet) {
  +                    list.add(from(row));
  +                }
  +                return list;
  +            });
       }
   ----
   
  
positive.code: ----
  @GET
  @Path("{id}")
  public CompletionStage<Response> getSingle(@PathParam Long id) {
      return Fruit.findById(client, id)
              .thenApply(fruit -> fruit != null ? Response.ok(fruit) : Response.status(Status.NOT_FOUND)) // <1>
              .thenApply(ResponseBuilder::build); // <2>
  }
  ----
  <1> Prepare a JAX-RS response with  either the `Fruit` instance if found or the `404` status code.
  
negative.code: IMPORTANT: The eagle eyes among you might have noticed the `url` prefix is different from usual JDBC urls.
  It is required to use the `vertx-reactive:` prefix otherwise the Reactive PostgreSQL Client extension will not use the `quarkus.datasource.url` config property.
  
  With that you may create your `FruitResource` skeleton and `@Inject` a `io.vertx.mutiny.pgclient.PgPool` instance:
  
  [source,java]
  .src/main/java/org/acme/vertx/FruitResource.java
  