@Override
 public void receive(List<Event> events, Credentials credentials) {
   for (Event event : events) {
     Map<String, BrokerListener> brokerListeners =
         streamIdBrokerListenerMap.get(event.getStreamId());
     if (brokerListeners == null) {
       try {
         definedStream(
             BrokerServiceValueHolder.getDataBridgeSubscriberService()
                 .getStreamDefinition(credentials, event.getStreamId()),
             credentials);
       } catch (StreamDefinitionNotFoundException e) {
         log.error("No Stream definition store found for the event " + event.getStreamId(), e);
         return;
       } catch (StreamDefinitionStoreException e) {
         log.error(
             "No Stream definition store found when checking stream definition for "
                 + event.getStreamId(),
             e);
         return;
       }
       brokerListeners = streamIdBrokerListenerMap.get(event.getStreamId());
       if (brokerListeners == null) {
         log.error("No broker listeners for  " + event.getStreamId());
         return;
       }
     }
     for (BrokerListener brokerListener : brokerListeners.values()) {
       try {
         brokerListener.onEvent(event);
       } catch (BrokerEventProcessingException e) {
         log.error(
             "Cannot send event to a brokerListener subscribed to " + event.getStreamId(), e);
       }
     }
   }
 }