public void Subscribe(IIntegrationEventHandler handler)
        {
            var eventType = handler.GetType().BaseType.GetGenericArguments().First();

            if (!_handlers.ContainsKey(eventType))
            {
                if (!_persistentConnection.IsConnected)
                {
                    _policy.Execute((context) => _persistentConnection.TryConnect(), new Dictionary <string, object>()
                    {
                        {
                            "logmessage",
                            "RabbitMQ Client could not connect "
                        }
                    });
                }
                _persistentConnection.CreateChannel();
                _persistentConnection.AddRoutingKey(eventType.Name);

                _handlers.Add(eventType, handler);
            }
        }