import java.time.Duration; import org.infinispan.functional.EntryView.*; import org.infinispan.functional.FunctionalMap.*; import org.infinispan.functional.MetaParam.*; WriteOnlyMap writeOnlyMap = ... ReadOnlyMap readOnlyMap = ... CompletableFuture writeFuture = writeOnlyMap.eval("key1", "value1", (v, view) -> view.set(v, new MetaLifespan(Duration.ofHours(1).toMillis()))); CompletableFuture readFuture = writeFuture.thenCompose(r -> readOnlyMap.eval("key1", view -> view.findMetaParam(MetaLifespan.class).get())); readFuture.thenAccept(System.out::println);