anchor.diff:      erlang:send_after(ConnectionInterval, ?MODULE, connections).
   
   %% @private
  --spec do_send_message(Node :: atom() | node_spec(),
  -                      Channel :: channel(),
  -                      PartitionKey :: term(),
  -                      Message :: term(),
  -                      Connections :: partisan_peer_service_connections:t(),
  -                      Options :: [{atom(), term()}]) -> ok.
  -do_send_message(Node, Channel, PartitionKey, Message, Connections) ->
  -    ForwardOptions = partisan_config:get(forward_options, []),
  -    do_send_message(Node, Channel, PartitionKey, Message, Connections, ForwardOptions).
  -
  -%% @private
  --spec do_send_message(Node :: atom() | node_spec(),
  -                      Channel :: channel(),
  -                      PartitionKey :: term(),
  -                      Message :: term(),
  -                      Connections :: partisan_peer_service_connections:t()) -> ok.
  -do_send_message(Node, Channel, PartitionKey, Message, Connections, Options) ->
  +do_send_message(Node, Channel, PartitionKey, Message, Connections, Options, PreInterpositionFuns) ->
       %% Find a connection for the remote node, if we have one.
       case partisan_peer_service_connections:find(Node, Connections) of
           {ok, []} ->
  
positive.code: %% Causal and acknowledged messages.
  handle_message({forward_message, SourceNode, MessageClock, ServerRef, {causal, Label, _, _, _, _, _} = Message},
                 From,
                 #state{connections=Connections}=State) ->
      %% Try to acknowledge.
      do_send_message(SourceNode,
                      ?DEFAULT_CHANNEL,
                      ?DEFAULT_PARTITION_KEY,
                      {ack, MessageClock},
                      Connections),
  
      case partisan_causality_backend:is_causal_message(Message) of
          true ->
  
negative.code:                       sync_joins=SyncJoins0,
                        connections=Connections,
                        membership_strategy=MembershipStrategy,
                        membership_strategy_state=MembershipStrategyState0,
                        pre_interposition_funs=PreInterpositionFuns}=State0) ->
      lager:debug("Node ~p connected!", [Node]),
  
      State = case lists:member(Node, Pending0) of
  