public async Task Dispatch(ResolvedEvent @event)
        {
            var headers      = JsonObject.Parse(@event.Event.Metadata.FromAsciiBytes()).ToNameValueCollection();
            var clrEventType = headers.Get(EventClrTypeHeader);

            Type type;

            if (EventTypes.TryResolveMapping(clrEventType, out type))
            {
                var typedEvent = JsonSerializer.DeserializeFromString(@event.Event.Data.FromAsciiBytes(), type);

                try
                {
                    var request = new BasicRequest();
                    request.Headers.AddAll(headers);

                    await HostContext.ServiceController.ExecuteAsync(typedEvent, request, true);
                }
                catch (Exception e)
                {
                    log.Error(e);
                }
                return;
            }
        }