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