public async Task StartProcessing(CancellationToken cancellationToken) { await foreach (var record in _eventListener.GetAsync(cancellationToken)) { var handler = _eventHandlers.FirstOrDefault(x => x.CanHandle(record.PayloadType)); if (handler == null) { continue; } var payload = record.Payload as JObject; if (payload == null) { _logger.Warning("Payload is null"); } await handler.HandleAsync(payload.ToObject(record.PayloadType)); } }