public async Task StartAsync(CancellationToken cancellationToken)
        {
            // Now we can wait for the Shards to boot up
            var healthTimeout = TimeSpan.FromSeconds(50);

            if (logger.IsDebugEnabled())
            {
                logger.LogDebug($"Waiting for at least 1 Node and at least 1 Active Shard, with a Timeout of {healthTimeout.TotalSeconds} seconds.");
            }

            await elasticsearchClient.WaitForClusterAsync(healthTimeout, cancellationToken);

            // Prepare Elasticsearch Database:
            var indexExistsResponse = await elasticsearchClient.ExistsAsync(cancellationToken);

            if (!indexExistsResponse.Exists)
            {
                await elasticsearchClient.CreateIndexAsync(cancellationToken);

                await elasticsearchClient.CreatePipelineAsync(cancellationToken);
            }
        }