anchor.diff:              true = ets:insert(?MODULE, {Id, Message}),
   
               %% Forward to our peers.
  -            Manager = manager(),
               MyNode = partisan_peer_service_manager:mynode(),
   
               %% Forward to random subset of peers: except ourselves and where we got it from.
  -            AntiEntropyMembers = select_random_sublist(membership(Membership), ?GOSSIP_FANOUT),
  +            AntiEntropyMembers = select_random_sublist(membership(Membership), ?FANOUT),
   
               lists:foreach(fun(N) ->
  -                Manager:forward_message(N, ?GOSSIP_CHANNEL, ?MODULE, {broadcast, Id, ServerRef, Message, MyNode}, [])
  +                partisan_pluggable_peer_service_manager:forward_message(N, undefined, ?MODULE, {broadcast, Id, ServerRef, Message, MyNode}, [])
               end, AntiEntropyMembers -- [MyNode, FromNode]),
   
               ok;
  
positive.code:     true = ets:insert(?MODULE, {Id, Message}),
  
      %% Forward to random subset of peers.
      AntiEntropyMembers = select_random_sublist(membership(Membership), ?GOSSIP_FANOUT),
  
      lists:foreach(fun(N) ->
          Manager:forward_message(N, ?GOSSIP_CHANNEL, ?MODULE, {broadcast, Id, ServerRef, Message, MyNode}, [])
      end, AntiEntropyMembers -- [MyNode]),
  
      {noreply, State};
  
  handle_cast({update, Membership0}, State) ->
      Membership = membership(Membership0),
      {noreply, State#state{membership=Membership}};
  
  handle_cast(Msg, State) ->
      lager:warning("Unhandled cast messages at module ~p: ~p", [?MODULE, Msg]),
      {noreply, State}.
  
  %% @private
  %% Incoming messages.
  handle_info({broadcast, Id, ServerRef, Message, FromNode}, #state{membership=Membership}=State) ->
      lager:info("~p received broadcast value from node ~p: ~p", [node(), FromNode, Message]),
  
      case ets:lookup(?MODULE, Id) of
          [] ->
  
negative.code: 
  -module(demers_rumor_mongering).
  
  -author("Christopher S. Meiklejohn <christopher.meiklejohn@gmail.com>").
  
  %% API
  -export([start_link/0,
           stop/0,
           broadcast/2,
           update/1]).
  
  