anchor.diff:      @Inject
       DynamoDbAsyncClient dynamoDB;
   
  -    public CompletableFuture<List<Fruit>> findAll() {
  -        return dynamoDB.scan(scanRequest())
  -                .thenApply(res -> res.items().stream().map(Fruit::from).collect(Collectors.toList()));
  -    }
  -
  -    public CompletableFuture<List<Fruit>> add(Fruit fruit) {
  -        return dynamoDB.putItem(putRequest(fruit)).thenCompose(ret -> findAll());
  -    }
  -
  -    public CompletableFuture<Fruit> get(String name) {
  -        return dynamoDB.getItem(getRequest(name)).thenApply(resp -> Fruit.from(resp.item()));
  -    }
  -}
  -----
  -
  -Create an asynchronous REST resource:
  -
  -[source,java]
  -----
  -package org.acme.dynamodb;
  -
  +    public Uni<List<Fruit>> findAll() {
  +        return Uni.createFrom().completionStage(() -> dynamoDB.scan(scanRequest()))
  +                .onItem().apply(res -> res.items().stream().map(Fruit::from).collect(Collectors.toList()));
  +    }
  +
  +    public Uni<List<Fruit>> add(Fruit fruit) {
  +        return Uni.createFrom().completionStage(() -> dynamoDB.putItem(putRequest(fruit)))
  +                .onItem().ignore().andSwitchTo(this::findAll);
  +    }
  +
  +    public Uni<Fruit> get(String name) {
  +        return Uni.createFrom().completionStage(() -> dynamoDB.getItem(getRequest(name)))
  +                .onItem().apply(resp -> Fruit.from(resp.item()));
  +    }
  +}
  +----
  +
  +In the previous code, we create `Uni` instances from the `CompletionStage` objects returned by the asynchronous DynamoDB client, and then transform the emitted item.
  +
  +Then, create an asynchronous REST resource that consumes this async service:
  +
  +[source,java]
  +----
  +package org.acme.dynamodb;
  +
  +import io.smallrye.mutiny.Uni;
  +
  +import javax.inject.Inject;
  +import javax.ws.rs.*;
  +import javax.ws.rs.core.MediaType;
   import java.util.List;
  -import java.util.concurrent.CompletionStage;
  -
  -import javax.inject.Inject;
  -import javax.ws.rs.Consumes;
  -import javax.ws.rs.GET;
  -import javax.ws.rs.POST;
  -import javax.ws.rs.Path;
  -import javax.ws.rs.PathParam;
  -import javax.ws.rs.Produces;
  -import javax.ws.rs.core.MediaType;
   
   @Path("/async-fruits")
   @Produces(MediaType.APPLICATION_JSON)
  
positive.code: import javax.enterprise.context.ApplicationScoped;
  import javax.inject.Inject;
  
  import software.amazon.awssdk.services.dynamodb.DynamoDbAsyncClient;
  
  @ApplicationScoped
  
negative.code:     -DprojectArtifactId=dynamodb-quickstart \
      -DclassName="org.acme.dynamodb.FruitResource" \
      -Dpath="/fruits" \
      -Dextensions="resteasy-jsonb,dynamodb,resteasy-mutiny"
  cd dynamodb-quickstart
  ----
  
  This command generates a Maven structure importing the RESTEasy/JAX-RS, Mutiny and DynamoDB Client extensions.
  After this, the `amazon-dynamodb` extension has been added to your `pom.xml` as well as the Mutiny support for RESTEasy.
  
  == Creating JSON REST service
  
  