# AzureBlobJournalStorageOptions Properties

[Type overview](/orleans/docs/api/csharp/microsoft.orleans.journaling.azurestorage/orleans.journaling.azureblobjournalstorageoptions/)

## BlobServiceClient {#blobserviceclient-55911737}

[Dedicated page](/orleans/docs/api/csharp/microsoft.orleans.journaling.azurestorage/orleans.journaling.azureblobjournalstorageoptions/properties/blobserviceclient-55911737/)

[Source](https://github.com/dotnet/orleans/blob/e4e752cedecc2976811db49802c7a999b1f1c704/src/Azure/Orleans.Journaling.AzureStorage/AzureBlobJournalStorageOptions.cs)

```csharp
public BlobServiceClient? BlobServiceClient
```

Gets or sets the client used to access the Azure Blob Service.

## BuildContainerFactory {#buildcontainerfactory-9861b1a3}

[Dedicated page](/orleans/docs/api/csharp/microsoft.orleans.journaling.azurestorage/orleans.journaling.azureblobjournalstorageoptions/properties/buildcontainerfactory-9861b1a3/)

[Source](https://github.com/dotnet/orleans/blob/e4e752cedecc2976811db49802c7a999b1f1c704/src/Azure/Orleans.Journaling.AzureStorage/AzureBlobJournalStorageOptions.cs)

```csharp
public Func<IServiceProvider, AzureBlobJournalStorageOptions, IBlobContainerFactory> BuildContainerFactory
```

A function for building container factory instances.

## ClientOptions {#clientoptions-146f252e}

[Dedicated page](/orleans/docs/api/csharp/microsoft.orleans.journaling.azurestorage/orleans.journaling.azureblobjournalstorageoptions/properties/clientoptions-146f252e/)

[Source](https://github.com/dotnet/orleans/blob/e4e752cedecc2976811db49802c7a999b1f1c704/src/Azure/Orleans.Journaling.AzureStorage/AzureBlobJournalStorageOptions.cs)

```csharp
public BlobClientOptions? ClientOptions
```

Options to be used when configuring the blob storage client, or `null` to use the default options.

## ContainerName {#containername-784023af}

[Dedicated page](/orleans/docs/api/csharp/microsoft.orleans.journaling.azurestorage/orleans.journaling.azureblobjournalstorageoptions/properties/containername-784023af/)

[Source](https://github.com/dotnet/orleans/blob/e4e752cedecc2976811db49802c7a999b1f1c704/src/Azure/Orleans.Journaling.AzureStorage/AzureBlobJournalStorageOptions.cs)

```csharp
public string ContainerName
```

Container name where state is stored.

## DeleteOldCheckpoints {#deleteoldcheckpoints-2b847b87}

[Dedicated page](/orleans/docs/api/csharp/microsoft.orleans.journaling.azurestorage/orleans.journaling.azureblobjournalstorageoptions/properties/deleteoldcheckpoints-2b847b87/)

[Source](https://github.com/dotnet/orleans/blob/e4e752cedecc2976811db49802c7a999b1f1c704/src/Azure/Orleans.Journaling.AzureStorage/AzureBlobJournalStorageOptions.cs)

```csharp
public bool DeleteOldCheckpoints
```

Gets or sets a value indicating whether obsolete checkpoint blobs are deleted after a new checkpoint is published. Defaults to true.

## GetCheckpointBlobName {#getcheckpointblobname-f25c4754}

[Dedicated page](/orleans/docs/api/csharp/microsoft.orleans.journaling.azurestorage/orleans.journaling.azureblobjournalstorageoptions/properties/getcheckpointblobname-f25c4754/)

[Source](https://github.com/dotnet/orleans/blob/e4e752cedecc2976811db49802c7a999b1f1c704/src/Azure/Orleans.Journaling.AzureStorage/AzureBlobJournalStorageOptions.cs)

```csharp
public Func<JournalId, string, string> GetCheckpointBlobName
```

Gets or sets the delegate used to generate the checkpoint blob name for a journal snapshot.

## GetWalBlobName {#getwalblobname-b1b73499}

[Dedicated page](/orleans/docs/api/csharp/microsoft.orleans.journaling.azurestorage/orleans.journaling.azureblobjournalstorageoptions/properties/getwalblobname-b1b73499/)

[Source](https://github.com/dotnet/orleans/blob/e4e752cedecc2976811db49802c7a999b1f1c704/src/Azure/Orleans.Journaling.AzureStorage/AzureBlobJournalStorageOptions.cs)

```csharp
public Func<JournalId, string> GetWalBlobName
```

Gets or sets the delegate used to generate the write-ahead log blob name for a journal.

## MaxMetadataOnlyConflictRetries {#maxmetadataonlyconflictretries-5b57f25a}

[Dedicated page](/orleans/docs/api/csharp/microsoft.orleans.journaling.azurestorage/orleans.journaling.azureblobjournalstorageoptions/properties/maxmetadataonlyconflictretries-5b57f25a/)

[Source](https://github.com/dotnet/orleans/blob/e4e752cedecc2976811db49802c7a999b1f1c704/src/Azure/Orleans.Journaling.AzureStorage/AzureBlobJournalStorageOptions.cs)

```csharp
public int MaxMetadataOnlyConflictRetries
```

Gets or sets the maximum number of times a journaling Append, Replace, or Delete operation will refresh its cached WAL ETag and retry in place after observing a metadata-only ETag conflict (for example, a concurrent caller-owned metadata update or generation bump). When the cap is exceeded the storage layer falls back to throwing [InconsistentStateException](/orleans/docs/api/csharp/microsoft.orleans.core/orleans.storage.inconsistentstateexception/) and the journaling layer recovers before retrying. Defaults to 5.

## MetadataOnlyConflictInitialBackoff {#metadataonlyconflictinitialbackoff-d86202a4}

[Dedicated page](/orleans/docs/api/csharp/microsoft.orleans.journaling.azurestorage/orleans.journaling.azureblobjournalstorageoptions/properties/metadataonlyconflictinitialbackoff-d86202a4/)

[Source](https://github.com/dotnet/orleans/blob/e4e752cedecc2976811db49802c7a999b1f1c704/src/Azure/Orleans.Journaling.AzureStorage/AzureBlobJournalStorageOptions.cs)

```csharp
public TimeSpan MetadataOnlyConflictInitialBackoff
```

Gets or sets the initial delay applied before re-trying after a metadata-only ETag conflict. Subsequent attempts double the delay (capped at [AzureBlobJournalStorageOptions](/orleans/docs/api/csharp/microsoft.orleans.journaling.azurestorage/orleans.journaling.azureblobjournalstorageoptions/)). Set to `System.TimeSpan.Zero` to retry immediately without backoff. Defaults to 10 ms.

## MetadataOnlyConflictMaxBackoff {#metadataonlyconflictmaxbackoff-2339b91a}

[Dedicated page](/orleans/docs/api/csharp/microsoft.orleans.journaling.azurestorage/orleans.journaling.azureblobjournalstorageoptions/properties/metadataonlyconflictmaxbackoff-2339b91a/)

[Source](https://github.com/dotnet/orleans/blob/e4e752cedecc2976811db49802c7a999b1f1c704/src/Azure/Orleans.Journaling.AzureStorage/AzureBlobJournalStorageOptions.cs)

```csharp
public TimeSpan MetadataOnlyConflictMaxBackoff
```

Gets or sets the upper bound on the per-attempt backoff used by metadata-only conflict retries. The exponential schedule starts at [AzureBlobJournalStorageOptions](/orleans/docs/api/csharp/microsoft.orleans.journaling.azurestorage/orleans.journaling.azureblobjournalstorageoptions/) and never exceeds this value. Defaults to 200 ms.
