Class ChangeFeedPolicy

java.lang.Object
com.azure.cosmos.models.ChangeFeedPolicy

@Beta(value=V4_12_0, warningText="Preview API - subject to change in non-backwards compatible way") public final class ChangeFeedPolicy extends Object
Represents the change feed policy configuration for the container in the Azure Cosmos DB service.

The example below creates a new container with a change feed policy for AllVersionsAndDeletes change feed with a retention window of 8 minutes - so intermediary snapshots of changes as well as deleted documents would be available for processing for 8 minutes before they vanish. Processing the change feed with AllVersionsAndDeletes mode will only be able within this retention window - if you attempt to process a change feed after more than the retention window (8 minutes in this sample) an error (Status Code 400) will be returned. It would still be possible to process changes using LatestVersion mode even when configuring a AllVersionsAndDeletes change feed policy with retention window on the container and when using LatestVersion mode it doesn't matter whether you are out of the retention window or not.



 CosmosContainerProperties containerProperties =
      new CosmosContainerProperties("ContainerName", "/somePartitionKeyProperty");
 containerProperties.setChangeFeedPolicy(ChangeFeedPolicy.createAllVersionsAndDeletesPolicy(8));

 CosmosAsyncDatabase database = client.createDatabase(databaseProperties).block().getDatabase();
 CosmosAsyncContainer container = database.createContainer(containerProperties).block().getContainer();

 
 

The example below creates a new container with a change feed policy for LatestVersion change feed. Processing the change feed with AllVersionsAndDeletes mode will not be possible for this container. It would still be possible to process changes using LatestVersion mode. The LatestVersion change feed policy is also the default that is used when not explicitly specifying a change feed policy.



 CosmosContainerProperties containerProperties =
      new CosmosContainerProperties("ContainerName", "/somePartitionKeyProperty");
 containerProperties.setChangeFeedPolicy(ChangeFeedPolicy.createLatestVersionPolicy());

 CosmosAsyncDatabase database = client.createDatabase(databaseProperties).block().getDatabase();
 CosmosAsyncContainer container = database.createContainer(containerProperties).block().getContainer();

 
 
  • Method Details

    • createFullFidelityPolicy

      @Beta(value=V4_12_0, warningText="Preview API - subject to change in non-backwards compatible way") @Deprecated public static ChangeFeedPolicy createFullFidelityPolicy(Duration retentionDuration)
      Creates a ChangeFeedPolicy with retention duration for AllVersionsAndDeletes processing
      Parameters:
      retentionDuration - - the retention duration (max granularity in minutes) in which it will be possible to process change feed events with AllVersionsAndDeletes mode.
      Returns:
      ChangeFeedPolicy for AllVersionsAndDeletes change feed.
    • createAllVersionsAndDeletesPolicy

      @Beta(value=V4_37_0, warningText="Preview API - subject to change in non-backwards compatible way") public static ChangeFeedPolicy createAllVersionsAndDeletesPolicy(Duration retentionDuration)
      Creates a ChangeFeedPolicy with retention duration for AllVersionsAndDeletes processing
      Parameters:
      retentionDuration - - the retention duration (max granularity in minutes) in which it will be possible to process change feed events with AllVersionsAndDeletes mode.
      Returns:
      ChangeFeedPolicy for AllVersionsAndDeletes change feed.
    • createIncrementalPolicy

      @Beta(value=V4_12_0, warningText="Preview API - subject to change in non-backwards compatible way") @Deprecated public static ChangeFeedPolicy createIncrementalPolicy()
      Deprecated.
      Creates a default ChangeFeedPolicy without retention duration specified. With the default/LatestVersion change feed it will not be possible to process intermediary changes or deletes.

      This is the default policy being used when not specifying any ChangeFeedPolicy for the Container.

      Returns:
      ChangeFeedPolicy for default/LatestVersion change feed without AllVersionsAndDeletes.
    • createLatestVersionPolicy

      @Beta(value=V4_37_0, warningText="Preview API - subject to change in non-backwards compatible way") public static ChangeFeedPolicy createLatestVersionPolicy()
      Creates a default ChangeFeedPolicy without retention duration specified. With the default/LatestVersion change feed it will not be possible to process intermediary changes or deletes.

      This is the default policy being used when not specifying any ChangeFeedPolicy for the Container.

      Returns:
      ChangeFeedPolicy for default/LatestVersion change feed without AllVersionsAndDeletes.
    • getFullFidelityRetentionDuration

      @Beta(value=V4_12_0, warningText="Preview API - subject to change in non-backwards compatible way") @Deprecated public Duration getFullFidelityRetentionDuration()
      Gets the retention duration in which it will be possible to process change feed events with AllVersionsAndDeletes mode (meaning intermediary changes and deletes will be exposed in change feed). By default AllVersionsAndDeletes change feed is not enabled - so the retention duration would be Duration.ZERO.
      Returns:
      AllVersionsAndDeletes retention duration.
    • getRetentionDurationForAllVersionsAndDeletesPolicy

      @Beta(value=V4_37_0, warningText="Preview API - subject to change in non-backwards compatible way") public Duration getRetentionDurationForAllVersionsAndDeletesPolicy()
      Gets the retention duration in which it will be possible to process change feed events with AllVersionsAndDeletes mode (meaning intermediary changes and deletes will be exposed in change feed). By default AllVersionsAndDeletes change feed is not enabled - so the retention duration would be Duration.ZERO.
      Returns:
      AllVersionsAndDeletes retention duration.