anchor.diff:      {noreply, #state{}} |
       {noreply, #state{}, Timeout :: non_neg_integer()} |
       {stop, Reason :: any(), #state{}}.
  -handle_cast({'3.0', sync_register, Scope, Name, Pid, Meta, Time}, State) ->
  +handle_cast(Msg, State) ->
  +    error_logger:warning_msg("SYN[~s] Received an unknown cast message: ~p", [node(), Msg]),
  +    {noreply, State}.
  +
  +%% ----------------------------------------------------------------------------------------------------------
  +%% Info messages
  +%% ----------------------------------------------------------------------------------------------------------
  +-spec handle_info(Info :: any(), #state{}) ->
  +    {noreply, #state{}} |
  +    {noreply, #state{}, Timeout :: non_neg_integer()} |
  +    {stop, Reason :: any(), #state{}}.
  +handle_info({'3.0', sync_register, Scope, Name, Pid, Meta, Time}, State) ->
       handle_registry_sync(Scope, Name, Pid, Meta, Time, State),
       {noreply, State};
   
  -handle_cast({'3.0', sync_unregister, Name, Pid, Meta}, #state{scope = Scope} = State) ->
  +handle_info({'3.0', sync_unregister, Name, Pid, Meta}, #state{scope = Scope} = State) ->
       remove_from_local_table(Scope, Name, Pid),
       %% callback
       syn_event_handler:do_on_process_unregistered(Scope, Name, Pid, Meta),
       %% return
       {noreply, State};
   
  -handle_cast({'3.0', discover, RemoteScopePid}, #state{
  +handle_info({'3.0', discover, RemoteScopePid}, #state{
       scope = Scope,
       nodes = Nodes
   } = State) ->
  
positive.code:             {noreply, State#state{nodes = Nodes#{RemoteScopeNode => RemoteScopePid}}}
      end;
  
  handle_cast({'3.0', ack_sync, RemoteScopePid, RegistryTuplesOfRemoteNode}, #state{
      scope = Scope,
      nodes = Nodes
  } = State) ->
  
negative.code: -spec broadcast(Message :: any(), ExcludedNodes :: [node()], #state{}) -> any().
  broadcast(Message, ExcludedNodes, #state{process_name = ProcessName, nodes = Nodes}) ->
      lists:foreach(fun(RemoteNode) ->
          erlang:send({ProcessName, RemoteNode}, Message, [noconnect])
      end, maps:keys(Nodes) -- ExcludedNodes).
  
  -spec broadcast_all(Message :: any(), #state{}) -> any().
  broadcast_all(Message, #state{process_name = ProcessName}) ->
      lists:foreach(fun(RemoteNode) ->
          erlang:send({ProcessName, RemoteNode}, Message, [noconnect])
      end, nodes()).
  
  -spec send_to_node(RemoteNode :: node(), Message :: any(), #state{}) -> any().
  send_to_node(RemoteNode, Message, #state{process_name = ProcessName}) ->
      erlang:send({ProcessName, RemoteNode}, Message, [noconnect]).
  
  -spec get_registry_tuples_for_node(Scope :: atom(), Node :: node()) -> [syn_registry_tuple()].
  get_registry_tuples_for_node(Scope, Node) ->
  