/// <summary> /// Publish an IntegrationEvent to external Event Bus /// </summary> /// <param name="metadata">The tracker</param> /// <param name="integrationEvent">The IntegrationEvent needs to be send</param> /// <returns></returns> protected async Task PublishAsync(IntegrationEvent integrationEvent, IRequestMetadata metadata = null) { if (integrationEvent == null) { throw new ArgumentNullException(nameof(integrationEvent)); } if (metadata != null) { integrationEvent.AppendTraceMetadata(metadata); } await _publisher.PublishAsync(integrationEvent).ConfigureAwait(false); }