public default Map<K, V> doFinalReduction(final Map<K, Object> map, final Traversal.Admin<S, V> valueTraversal) {
        final Barrier barrierStep = determineBarrierStep(valueTraversal);
        if (barrierStep != null) {
            for (final K key : map.keySet()) {
                valueTraversal.reset();
                barrierStep.addBarrier(map.get(key));
                if (valueTraversal.hasNext())
                    map.put(key, valueTraversal.next());
            }
        }
        return (Map<K, V>) map;
    }
When there is a {@link Barrier} detected by {@link #determineBarrierStep(Traversal.Admin)} it is processed
in full up to that point and then the remainder of the traversal that follows it is completed.
gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/Grouping.java