public async Task InitializeAsync()
        {
            var collectionLink = await Client.GetOrCreateCollectionAsync(Configuration.Collection, Configuration.CollectionTier);

            storedProcedureLink = await Client.CreateStoredProcedureAsync(collectionLink, Configuration.StoredProcName, Configuration.StoredProcBody);

            buffer          = new FastForwardBuffer <BulkItemSurrogate>();
            surrogate       = new LengthCappedEnumerableSurrogate(buffer, Configuration.BatchSize, Configuration.MaxScriptSize);
            activeBulkItems = new ConcurrentDictionary <int, TaskCompletionSource <object> >();

            flushSemaphore = new SemaphoreSlim(1, 1);
        }