private void fireGlobally(final EntityEvent event) {
        securityContext.asProcessingUser(() -> {
            try {
                // Make sure there are some handlers that care about this event.
                boolean handlerExists = entityEventHandler.handlerExists(event, event.getDocRef().getType());
                if (!handlerExists) {
                    // Look for handlers that cater for all types.
                    handlerExists = entityEventHandler.handlerExists(
                            event,
                            EntityEvent.TYPE_WILDCARD);
                }

                // If there are registered handlers then go ahead and fire the event.
                if (handlerExists) {
                    // Force a local update so that changes are immediately reflected
                    // for the current user.
                    entityEventHandler.fireLocally(event);

                    if (started) {
                        // Dispatch the entity event to all nodes in the cluster.
                        final Runnable runnable = taskContextFactory.context("Fire Entity Event Globally",
                                taskContext -> fireRemote(event, taskContext));
                        CompletableFuture.runAsync(runnable, executor);
                    }
                }
            } catch (final RuntimeException e) {
                LOGGER.error(e.getMessage(), e);
            }
        });
    }
Fires the entity change to all nodes in the cluster.
stroom-core/src/main/java/stroom/core/entity/event/EntityEventBusImpl.java