anchor.diff:      OnSuccess(Token).
   
   handle_start_activity(Async,
  -                      Domain, DomainToken, Name, Quorum, Body, From, State) ->
  +                      Domain,
  +                      DomainToken, Name, Quorum, Opts, Body, From, State) ->
       check_no_domain_conflicts(
         Domain, DomainToken, Name, Quorum, From, State,
         fun (ActivityToken) ->
  
positive.code:                               end,
                                [monitor, {adopters, [Async]}]),
                gen_server2:reply(From, {ok, Pid}),
                add_activity(Domain, DomainToken, Name, Quorum, Pid, MRef, State)
        end).
  
  handle_register_process(Domain, DomainToken, Name, Quorum, Pid, From, State) ->
      check_no_domain_conflicts(
        Domain, DomainToken, Name, Quorum, From, State,
        fun (ActivityToken) ->
                MRef = erlang:monitor(process, Pid),
                gen_server2:reply(From, {ok, ActivityToken}),
                add_activity(Domain, DomainToken, Name, Quorum, Pid, MRef, State)
        end).
  
  handle_if_internal_process(Type, Pid, SubCall, From, State) ->
  
negative.code:                      | {majority, Nodes}
                       | [quorum(Nodes)].
  
  -type activity_option() :: {quorum_timeout, non_neg_integer()}
                           | {timeout, non_neg_integer()}.
  -type activity_options() :: [activity_option()].
  
  -record(activity, { pid          :: pid(),
                      mref         :: reference(),
                      domain       :: term(),
                      domain_token :: binary() | any(),
                      name         :: [term()],
                      quorum       :: quorum(),
                      options      :: activity_options() }).
  
  -record(activity_token, { lease        :: {node(), binary()},
                            domain_token :: binary(),
  