import org.infinispan.functional.EntryView.*; import org.infinispan.functional.FunctionalMap.*; import org.infinispan.commons.marshall.Externalizer; import org.infinispan.commons.marshall.SerializeFunctionWith; WriteOnlyMap writeOnlyMap = ... // Force a function to be Serializable Consumer> function = new SetStringConstant<>(); CompletableFuture writeFuture = writeOnlyMap.eval("key1", function); @SerializeFunctionWith(value = SetStringConstant.Externalizer0.class) class SetStringConstant implements Consumer> { @Override public void accept(WriteEntryView view) { view.set("value1"); } public static final class Externalizer0 implements Externalizer { public void writeObject(ObjectOutput oo, Object o) { // No-op } public Object readObject(ObjectInput input) { return new SetStringConstant<>(); } } }