public Task ProduceAsync(IOutboundEnvelope envelope)
            {
                Check.NotNull(envelope, nameof(envelope));

                _logger.LogWrittenToOutbox(envelope);

                return(_outboundQueueBroker.GetProducer(envelope.Endpoint).ProduceAsync(envelope));
            }
            public Task ProduceAsync(IOutboundEnvelope envelope)
            {
                Check.NotNull(envelope, nameof(envelope));

                _logger.LogDebugWithMessageInfo(
                    IntegrationEventIds.OutboundMessageWrittenToOutbox,
                    "Writing the outbound message to the transactional outbox.",
                    envelope);

                return(_outboundQueueBroker.GetProducer(envelope.Endpoint).ProduceAsync(envelope));
            }