public PubsubGameBoardQueue(
            IOptions <PubsubGameBoardQueueOptions> options,
            ILogger <PubsubGameBoardQueue> logger)
        {
            _options      = options;
            _logger       = logger;
            _publisherApi = PublisherServiceApiClient.Create();
            var subscriberApi = SubscriberServiceApiClient.Create();

            _publisherClient = PublisherClient.Create(MyTopic,
                                                      new[] { _publisherApi });
            _subscriberClient = SubscriberClient.Create(MySubscription,
                                                        new[] { subscriberApi }, new SubscriberClient.Settings()
            {
                StreamAckDeadline = TimeSpan.FromMinutes(1)
            });

            // Create the Topic and Subscription.
            try
            {
                _publisherApi.CreateTopic(MyTopic);
                _logger.LogInformation("Created {0}.", MyTopic.ToString());
            }
            catch (RpcException e)
                when(e.Status.StatusCode == StatusCode.AlreadyExists)
                {
                    // Already exists.  That's fine.
                }

            try
            {
                subscriberApi.CreateSubscription(MySubscription, MyTopic,
                                                 pushConfig: null, ackDeadlineSeconds: 10);
                _logger.LogInformation("Created {0}.",
                                       MySubscription.ToString());
            }
            catch (RpcException e)
                when(e.Status.StatusCode == StatusCode.AlreadyExists)
                {
                    // Already exists.  That's fine.
                }
        }