.NET Change Feed Processor SDK: Download and release notes

SDK download NuGet
API documentation Change Feed Processor library API reference documentation
Get started Get started with the Change Feed Processor .NET SDK
Current supported framework Microsoft .NET Framework 4.5
Microsoft .NET Core

Release notes

v2 builds

2.1.0

  • Added new API, Task<IReadOnlyList<RemainingPartitionWork>> IRemainingWorkEstimator.GetEstimatedRemainingWorkPerPartitionAsync(). This can be used to get estimated work for each partition.
  • Supports Microsoft.Azure.DocumentDB SDK 2.0. Requires Microsoft.Azure.DocumentDB 2.0 or later.

2.0.6

  • Added ChangeFeedEventHost.HostName public property for compativility with v1.

2.0.5

  • Fixed a race condition that occurs during partition split. The race condition may lead to acquiring lease and immediately losing it during partition split and causing contention. The race condition issue is fixed with this release.

2.0.4

  • GA SDK

2.0.3-prerelease

  • Fixed the following issues:

    • When partition split happens, there could be duplicate processing of documents modified before the split.
    • The GetEstimatedRemainingWork API returned 0 when no leases were present in the lease collection.
  • The following exceptions are made public. Extensions that implement IPartitionProcessor can throw these exceptions.

    • Microsoft.Azure.Documents.ChangeFeedProcessor.Exceptions.LeaseLostException.
    • Microsoft.Azure.Documents.ChangeFeedProcessor.Exceptions.PartitionException.
    • Microsoft.Azure.Documents.ChangeFeedProcessor.Exceptions.PartitionNotFoundException.
    • Microsoft.Azure.Documents.ChangeFeedProcessor.Exceptions.PartitionSplitException.

2.0.2-prerelease

  • Minor API changes:
    • Removed ChangeFeedProcessorOptions.IsAutoCheckpointEnabled that was marked as obsolete.

2.0.1-prerelease

  • Stability improvements:
    • Better handling of lease store initialization. When lease store is empty, only one instance of processor can initialize it, the others will wait.
    • More stable/efficient lease renewal/release. Renewing and releasing a lease one partition is independent from renewing others. In v1 that was done sequentially for all partitions.
  • New v2 API:
    • Builder pattern for flexible construction of the processor: the ChangeFeedProcessorBuilder class.
      • Can take any combination of parameters.
      • Can take DocumentClient instance for monitoring and/or lease collection (not available in v1).
    • IChangeFeedObserver.ProcessChangesAsync now takes CancellationToken.
    • IRemainingWorkEstimator - the remaining work estimator can be used separately from the processor.
    • New extensibility points:
      • IParitionLoadBalancingStrategy - for custom load-balancing of partitions between instances of the processor.
      • ILease, ILeaseManager - for custom lease management.
      • IPartitionProcessor - for custom processing changes on a partition.
  • Logging - uses LibLog library.
  • 100% backward compatible with v1 API.
  • New code base.
  • Compatible with SQL .NET SDK versions 1.21.1 and above.

v1 builds

1.3.3

  • Added more logging.
  • Fixed a DocumentClient leak when calling the pending work estimation multiple times.

1.3.2

  • Fixes in the pending work estimation.

1.3.1

  • Stability improvements.
    • Fix for handling cancelled tasks issue that might lead to stopped observers on some partitions.
  • Support for manual checkpointing.
  • Compatible with SQL .NET SDK versions 1.21 and above.

1.2.0

  • Adds support for .NET Standard 2.0. The package now supports netstandard2.0 and net451 framework monikers.
  • Compatible with SQL .NET SDK versions 1.17.0 and above.
  • Compatible with SQL .NET Core SDK versions 1.5.1 and above.

1.1.1

  • Fixes an issue with the calculation of the estimate of remaining work when the Change Feed was empty or no work was pending.
  • Compatible with SQL .NET SDK versions 1.13.2 and above.

1.1.0

  • Added a method to obtain an estimate of remaining work to be processed in the Change Feed.
  • Compatible with SQL .NET SDK versions 1.13.2 and above.

1.0.0

  • GA SDK
  • Compatible with SQL .NET SDK versions 1.14.1 and below.

Release & Retirement dates

Microsoft will provide notification at least 12 months in advance of retiring an SDK in order to smooth the transition to a newer/supported version.

New features and functionality and optimizations are only added to the current SDK, as such it is recommended that you always upgrade to the latest SDK version as early as possible.

Any request to Cosmos DB using a retired SDK will be rejected by the service.


Version Release Date Retirement Date
1.3.3 May 08, 2018 ---
1.3.2 April 18, 2018 ---
1.3.1 March 13, 2018 ---
1.2.0 October 31, 2017 ---
1.1.1 August 29, 2017 ---
1.1.0 August 13, 2017 ---
1.0.0 July 07, 2017 ---

FAQ

1. How will customers be notified of the retiring SDK?

Microsoft will provide 12 month advance notification to the end of support of the retiring SDK in order to facilitate a smooth transition to a supported SDK. Further, customers will be notified through various communication channels – Azure Management Portal, Developer Center, blog post, and direct communication to assigned service administrators.

2. Can customers author applications using a "to-be" retired Azure Cosmos DB SDK during the 12 month period?

Yes, customers will have full access to author, deploy and modify applications using the "to-be" retired Azure Cosmos DB SDK during the 12 month grace period. During the 12 month grace period, customers are advised to migrate to a newer supported version of Azure Cosmos DB SDK as appropriate.

3. Can customers author and modify applications using a retired Azure Cosmos DB SDK after the 12 month notification period?

After the 12 month notification period, the SDK will be retired. Any access to Azure Cosmos DB by an applications using a retired SDK will not be permitted by the Azure Cosmos DB platform. Further, Microsoft will not provide customer support on the retired SDK.

4. What happens to Customer’s running applications that are using unsupported Azure Cosmos DB SDK version?

Any attempts made to connect to the Azure Cosmos DB service with a retired SDK version will be rejected.

5. Will new features and functionality be applied to all non-retired SDKs?

New features and functionality will only be added to new versions. If you are using an old, non-retired, version of the SDK your requests to Azure Cosmos DB will still function as previous but you will not have access to any new capabilities.

6. What should I do if I cannot update my application before a cut-off date?

We recommend that you upgrade to the latest SDK as early as possible. Once an SDK has been tagged for retirement you will have 12 months to update your application. If, for whatever reason, you cannot complete your application update within this timeframe then please contact the Cosmos DB Team and request their assistance before the cutoff date.

See also

To learn more about Cosmos DB, see Microsoft Azure Cosmos DB service page.