Description
Submitting a transactional workload for automatic retry currently looks like this:
public <R> Workload<R> submit(final Function<Graph, R> work);
but that doesn't take into account relatively recent changes that allow mutation operations to execute over a Traversal. It also doesn't account for workload constructed over multiple requests in a session to Gremlin Server too well.
Maybe we do something like:
public <R> Workload<R> submit(final Function<Graph, R>... work); public <R> Workload<R> submit(final Function<TraversalSource, R>... work); public <R> Workload<R> submit(final Traversal... work);
I suppose it might need to return a List<R> or something like that so that each piece of the transaction could maintain its own result.
With respect to Gremlin Server and in-session requests, a driver could automate transaction retry by inserting scripts to a list variable on the server side until client-side commit() at which point that list could be submit for retry.