anchor.diff:                      case rabl_amqp:channel_open(Connection) of
                           {ok, Channel} ->
                               ChanMonRef = erlang:monitor(process, Channel),
  -                            %% @TODO magic number
                               ok = rabl_amqp:set_prefetch_count(Channel, PrefetchCount),
                               subscribe(State#state{channel=Channel,
                                                     channel_monitor=ChanMonRef,
  
positive.code:                             lager:error("Error ~p opening a channel on connection with params ~p~n", [ChannelOpenError, AMQPParams]),
                              erlang:demonitor(ConnMonRef, [flush]),
                              ok = rabl_amqp:connection_close(Connection),
                              {next_state, disconnected, State#state{reconnect_delay_millis=Delay2,
                                                                     connection_attempt_counter=CAC+1}, Delay}
                      end;
                  {error, ConnectionOpenError} ->
                      lager:error("Error ~p connecting with params ~p~n", [ConnectionOpenError, AMQPParams]),
                      {next_state, disconnected, State#state{reconnect_delay_millis=Delay2,
                                                             connection_attempt_counter=CAC+1}, Delay}
              end
      end.
  
  
negative.code:             State=#state{connection_monitor=ConnMonRef, connection=Connection}) ->
      lager:error("Connection Down with reason ~p~n", [Reason]),
      connect(State);
  handle_info(connect_timeout, StateName, State) ->
      ?MODULE:StateName(connect_timeout, State);
  handle_info(Info, AnyState, State) ->
      %% TODO implement throttle here?
      Time = os:timestamp(),
  