public async Task <string> WriteBusinessDataSnapshot(BusinessData <TBusinessData> businessData, CancellationToken cancellationToken = default)
        {
            var blobName   = WatermarkToBlobName(businessData);
            var blobClient = this.snapshotContainerClient.GetBlobClient(blobName: blobName);

            if (businessData.Watermark == this.lastWrittenWatermark)
            {
                await Console.Error.WriteLineAsync($"Skip writing {blobClient.Name} (no change)");

                return(blobClient.Name);
            }

            try
            {
                _ = await blobClient.UploadAsync(content : businessData.AsJSONStream(), overwrite : false, cancellationToken : cancellationToken);

                this.lastWrittenWatermark = businessData.Watermark;
            }
            catch (RequestFailedException rfe) when(rfe.ErrorCode == "BlobAlreadyExists")
            {
            }

            return(blobClient.Name);
        }