anchor.diff:  
       %% Send outgoing messages.
       lists:foreach(fun({Peer, Message}) ->
  -        schedule_message_delivery(Peer, Message, ?MEMBERSHIP_PROTOCOL_CHANNEL, ?DEFAULT_PARTITION_KEY, PreInterpositionFuns)
  +        schedule_self_message_delivery(Peer, Message, ?MEMBERSHIP_PROTOCOL_CHANNEL, ?DEFAULT_PARTITION_KEY, PreInterpositionFuns)
       end, OutgoingMessages),
   
       schedule_periodic(),
  
positive.code:             partisan_util:process_forward(ServerRef, Message)
      end,
  
      gen_server:reply(From, ok),
  
      {noreply, State};
  
  %% Best-effort messages.
  handle_message({forward_message, ServerRef, Message}, 
                 From,
                 State) ->
      partisan_util:process_forward(ServerRef, Message),
      gen_server:reply(From, ok),
      {noreply, State};
  
  handle_message({ack, MessageClock}, 
                 From,
                 State) ->
      Mynode = partisan_peer_service_manager:mynode(),
      lager:info("~p acknowledgement received for message ~p", [Mynode, MessageClock]),
      partisan_acknowledgement_backend:ack(MessageClock),
      gen_server:reply(From, ok),
      {noreply, State}.
  
  %% @private
  
negative.code:     %% Use causality?
      CausalLabel = proplists:get_value(causal_label, Options, undefined),
  
      %% Get forwarding options and combine with message specific options.
      ForwardOptions = lists:usort(partisan_config:get(forward_options, []) ++ Options),
      lager:info("Forwarding options for message ~p are ~p", [Message, ForwardOptions]),
  
      %% Use configuration to disable fast forwarding.
      DisableFastForward = partisan_config:get(disable_fast_forward, false),
  
  