private async Task ProcessEvent(string eventName, string message)
        {
            if (eventBusSubscribeManager.HasSubscribeForEvent(eventName))
            {
                using (var scope = lifetimeScope.BeginLifetimeScope())
                {
                    var subscribes = eventBusSubscribeManager.GetHandlersForEvent(eventName);
                    foreach (var subscribe in subscribes)
                    {
                        var handler = scope.ResolveOptional(subscribe.HandlerType);
                        if (handler == null)
                        {
                            continue;
                        }
                        var eventType = eventBusSubscribeManager.GetEventTypeByName(eventName);
                        if (eventType == null)
                        {
                            continue;
                        }
                        var integrationEvent = JsonConvert.DeserializeObject(message, eventType);
                        var concreteType     = typeof(IIntegrationEventHandler <>).MakeGenericType(eventType);

                        await Task.Yield();

                        await(Task) concreteType.GetMethod("Handle").Invoke(handler, new object[] { integrationEvent });
                    }
                }
            }
        }