anchor.diff:  
   -module(demers_rumor_mongering).
   
  --include("partisan.hrl").
  -
   -author("Christopher S. Meiklejohn <christopher.meiklejohn@gmail.com>").
   
   %% API
   -export([start_link/0,
  +         stop/0,
            broadcast/2,
            update/1]).
   
  
positive.code:             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),
  
              lists:foreach(fun(N) ->
                  Manager:forward_message(N, ?GOSSIP_CHANNEL, ?MODULE, {broadcast, Id, ServerRef, Message, MyNode}, [])
              end, AntiEntropyMembers -- [MyNode, FromNode]),
  
              ok;
  
negative.code:          terminate/2,
           code_change/3]).
  
  -define(FANOUT, 2).
  
  -record(state, {next_id, membership}).
  
  %%%===================================================================
  %%% API
  