anchor.diff:  start_link(Parent, Host, Port, ClientId) ->
     start_link(Parent, Host, Port, ClientId, []).
   
  --spec start_link(pid(), hostname(), portnum(),
  -                 brod_client_id() | binary(), term()) ->
  +-spec start_link(pid(), brod:hostname(), brod:portnum(),
  +                 brod:brod_client_id() | binary(), term()) ->
                       {ok, pid()} | {error, any()}.
   start_link(Parent, Host, Port, ClientId, Options) when is_atom(ClientId) ->
     BinClientId = list_to_binary(atom_to_list(ClientId)),
  
positive.code: 
  %%%_* Internal functions =======================================================
  
  -spec init(pid(), hostname(), portnum(), brod_client_id(), [any()]) ->
          no_return().
  init(Parent, Host, Port, ClientId, Options) ->
    Debug = sys:debug_options(proplists:get_value(debug, Options, [])),
  
negative.code:     {error, Reason} -> {error, Reason}
    end.
  
  -spec wait_for_resp(pid(), term(), brod:corr_id(), timeout()) ->
          {ok, term()} | {error, any()}.
  wait_for_resp(Pid, _, CorrId, Timeout) ->
    Mref = erlang:monitor(process, Pid),
  