public async Task PublishAsync(
            string queueName,
            QueueEvent @event,
            CancellationToken cancellationToken = default)
        {
            var eventName   = @event.GetType().Name.Replace(_QUEUEEVENTSUFFIX, string.Empty);
            var jsonMessage = JsonConvert.SerializeObject(@event);
            var body        = Encoding.UTF8.GetBytes(jsonMessage);

            var message = new Message
            {
                MessageId = Guid.NewGuid().ToString(),
                Body      = body,
                Label     = eventName,
            };

            var client = _connection.CreateClient(queueName);

            cancellationToken.ThrowIfCancellationRequested();

            await client.SendAsync(message);
        }