anchor.diff:                                 fun(R) -> {unbind, R, {queue, Queue}} end,
                                  ?TOPIC_MASTER).
   
  +-spec bindings(binary()) -> {ok, [{queue, binary()}]}.
  +%% @doc
   bindings(Topic) ->
       harbinger_coordinator:reply({Topic, Topic},
                                   harbinger_topic,
  
positive.code: %% Types
  %%
  
  -record(s, {partition,
              head = 0                   :: non_neg_integer(),
              tail = 0                   :: non_neg_integer(),
              bindings = gb_sets:empty() :: gb_set()}).
  
  -define(TIMEOUT, 5000).
  
  
negative.code: 
  init([Partition]) -> {ok, #s{partition = Partition}}.
  
  %% Publish
  handle_command({publish, ReqId, Payload}, _Sender, State = #s{tail = Tail, log = Log}) ->
      NewState = State#s{log = [Payload|Log], tail = Tail + 1},
      {reply, {ok, ReqId}, NewState};
  
  %% Bind
  handle_command({bind, ReqId, Binding}, _Sender, State = #s{bindings = Bindings}) ->
      NewState = State#s{bindings = gb_sets:add(Binding, Bindings)},
      {reply, {ok, ReqId, {State#s.head, State#s.tail}}, NewState};
  
  %% Unbind
  handle_command({unbind, ReqId, Binding}, _Sender, State = #s{bindings = Bindings}) ->
      NewState = State#s{bindings = gb_sets:delete_any(Binding, Bindings)},
      {reply, {ok, ReqId}, NewState};
  
  %% Bindings
  handle_command({bindings, ReqId}, _Sender, State) ->
      {reply, {ok, ReqId, gb_sets:to_list(State#s.bindings)}, State};
  
  %% Ping
  handle_command(ping, _Sender, State) ->
      {reply, {pong, State#s.partition}, State}.
  
  