default void remoteRestCall(final String nodeName,
                                final Supplier<String> fullPathSupplier,
                                final Runnable localRunnable,
                                final Function<Invocation.Builder, Response> responseBuilderFunc) {
        remoteRestCall(nodeName, fullPathSupplier, localRunnable, responseBuilderFunc, Collections.emptyMap());
    }
Call out to the specified node using the rest request defined by fullPath and
responseBuilderFunc, if nodeName is this node then use localRunnable.

@param nodeName            The name of the node to call
@param fullPathSupplier    A supplier of the full path to use for a remote rest call, if needed, e.g.
                           /api/permission/changeEvent/v1/fireChange
@param localRunnable       The local code to run if this node matches nodeName
@param responseBuilderFunc A function to use the provided {@link Invocation.Builder} to execute a REST
                           call and get the result from a node where nodeName is not equal to this node's
                           name.
stroom-node/stroom-node-api/src/main/java/stroom/node/api/NodeService.java