code: MessagePublisher providePublisher(PublisherReliability reliability, Class<?> eventType) {
          Map<Class<?>, MessagePublisher> localPublishers = publishers.get();
          if (localPublishers == null) {
              localPublishers = new HashMap<Class<?>, MessagePublisher>();
              publishers.set(localPublishers);
          }
          MessagePublisher publisher = localPublishers.get(eventType);
          if (publisher == null) {
              publisher = new GenericPublisher(connectionFactory, reliability);
              localPublishers.put(eventType, publisher);
          }
          return publisher;
      }
docs: Provides a publisher with the specified reliability. Within the same thread, the same
  producer instance is provided for the given event type.
  
  @param reliability The desired publisher reliability
  @param eventType The event type
  @return The provided publisher