anchor.diff:                  subscriber_id,
                   waiting}).
   
  +-define(RETRY, 10000). % wait 10 seconds to retry
  +
   %%%===================================================================
   %%% API
   %%%===================================================================
  
positive.code:     {noreply, State#state{waiting=undefined}}.
  
  handle_info({'DOWN', _MRef, process, Pid, Reason}, State) ->
      #state{repl_pid=ReplPid, subscriber_id=SubscriberId} = State,
      case {Pid == ReplPid, Reason} of
          {true, normal} ->
              %% finished replicating
              {stop, normal, State};
          {true, OtherReason} ->
              lager:warning("replication process for subscriber ~p died due to ~p",
                           [SubscriberId, OtherReason]),
  
negative.code: 
  init([Node, QPid, SubscriberId]) ->
      QueueMon = monitor(process, QPid),
      self() ! deliver_from_store, % kick of delivery
      {ok, #state{node=Node, subscriber_id=SubscriberId, queue_pid=QPid,
                  queue_mon=QueueMon}}.
  
  handle_call({deliver, Term}, From, State) ->
      {noreply, deliver(From, Term, State)}.
  