private async Task <(Guid StreamId, string StreamNamespace, Task <List <dynamic> > Awaiter)> CreateProducerConsumerStreamAwaiter(BaseClusterFixture clusterFixture, int messageCount)
        {
            var streamId                  = Guid.NewGuid();
            var streamNamespace           = Guid.NewGuid().ToString();
            var streamSubscriptionAwaiter = await clusterFixture.SubscribeAndGetTaskAwaiter <string>(StreamProviderName, streamId, streamNamespace, messageCount);

            var publishTask = Task.Factory.StartNew(async() =>
            {
                for (var i = 0; i < messageCount; i++)
                {
                    await clusterFixture.PublishToStream(StreamProviderName, streamId, streamNamespace, $"test:{streamId}-{streamNamespace} message:{i}");
                }
            });

            return(streamId, streamNamespace, streamSubscriptionAwaiter);
        }