anchor.diff:                                           } = State) ->
     error_logger:error_msg("client ~p producers supervisor down~nReason: ~p",
                            [ClientId, Pid, Reason]),
  -  %% shutdown all producers?
  -  {noreply, State#state{producers_sup = ?undef}};
  +  {stop, {producers_sup_down, Reason}, State};
   handle_info({'EXIT', Pid, Reason}, #state{ client_id     = ClientId
                                            , consumers_sup = Pid
                                            } = State) ->
     error_logger:error_msg("client ~p consumers supervisor down~nReason: ~p",
                            [ClientId, Pid, Reason]),
  -  {noreply, State#state{consumers_sup = ?undef}};
  +  {stop, {consumers_sup_down, Reason}, State};
   handle_info({'EXIT', Pid, Reason},
               #state{ client_id = ClientId
                     , meta_sock = #sock{ sock_pid = Pid
  
positive.code:     {error, Reason} -> start_metadata_socket(ClientId, Endpoints, Reason)
    end.
  
  maybe_start_producers_sup([]) ->
    {ok, undefined};
  maybe_start_producers_sup(Producers) ->
    brod_producers_sup:start_link(self(), Producers).
  
  maybe_start_consumers_sup([]) ->
    {ok, undefined};
  maybe_start_consumers_sup(Consumers) ->
    brod_consumers_sup:start_link(self(), Consumers).
  
  %%%_* Emacs ====================================================================
  %%% Local Variables:
  %%% allout-layout: t
  
negative.code:         , endpoints     :: [endpoint()]
          , meta_sock     :: pid()
          , sockets = []  :: [#sock{}]
          , producers_sup :: pid()
          , consumers_sup :: pid()
          , config        :: client_config()
          , workers_tab   :: ets:tab()
          }).
  