anchor.diff:  public CompletionStage<Response> create(Fruit fruit) {
       AsyncSession session = driver.asyncSession();
       return session
  -        .writeTransactionAsync(tx ->
  -            tx.runAsync("CREATE (f:Fruit {name: $name}) RETURN f", Values.parameters("name", fruit.name))
  +        .writeTransactionAsync(tx -> tx
  +            .runAsync("CREATE (f:Fruit {name: $name}) RETURN f", Values.parameters("name", fruit.name))
  +            .thenCompose(fn -> fn.singleAsync())
           )
  -        .thenCompose(fn -> fn.singleAsync())
           .thenApply(record -> Fruit.from(record.get("f").asNode()))
           .thenCompose(persistedFruit -> session.closeAsync().thenApply(signal -> persistedFruit))
           .thenApply(persistedFruit -> Response
  
positive.code: https://github.com/quarkusio/quarkus/tree/master/docs/src/main/asciidoc
  ////
  = Quarkus - Neo4j
  :neo4j_version: 3.5.13
  
  include::./attributes.adoc[]
  :extension-status: preview
  
negative.code: public CompletionStage<Response> getSingle(@PathParam("id") Long id) {
      AsyncSession session = driver.asyncSession();
      return session
          .readTransactionAsync(tx -> tx
              .runAsync("MATCH (f:Fruit) WHERE id(f) = $id RETURN f", Values.parameters("id", id))
              .thenCompose(fn -> fn.singleAsync())
      )
      .handle((record, exception) -> {
          if(exception != null) {
              Throwable source = exception;
  