Skip to content

Durable Functions for NodeJS 2.0.0

Compare
Choose a tag to compare
@davidmrdavid davidmrdavid released this 03 Jun 17:23
· 11 commits to main since this release
bb50ae7

UPDATE: Some backwards compatibility issues were detected on release. Please fast-forward your upgrade to v2.0.2

Durable Functions for JavaScript 2.0.0 is a major version release that brings dramatic performance improvements to the platform, makes a few breaking changes to streamline the programming model, and brings some new features. See below!

npm package

https://www.npmjs.com/package/durable-functions

Performance Improvements

  • Adopted a linear-time orchestrator replay algorithm (#305)

New Features

  • Support for long timers (#340)
  • Support for polling in CallHttp (#346)

Bug Fixes

  • Timers can be cancelled more reliably (#345)
  • Internal issue with TimeStamp parsing (#336)

Breaking Changes

The following breaking changes were introduced in #305

  1. Returning a un-yielded Task from an orchestrator is no longer valid. Previously, a statement such as return context.CallActivity(...) would be treated as return yield context.CallActivity(...). This is no longer the case. Make sure you’re yield’ing all your Tasks instead of returning them.
  2. The ContinueAsNew API can no longer be yielded. Previously ContinueAsNew could be yielded or simply called as a fire-and-forget operation. Our original intention was for ContinueAsNew to be fire-and-forget, so now we throw an exception if you try to yield it.
  3. All user-facing Task types now inherit from a single identifier: Task. Additionally, the user-facing Task` types have been simplified and, in TypeScript, they no longer expose various properties that were meant for framework-internal use only. We heard your feedback requesting a more streamlined experience with Task-types, so we hope this makes things easier.

To the best of our knowledge, this is the full extent of breaking changes. That said, as with any major version release, it’s always a good idea to test that your application continues working after upgrading to the new version. If you find an undocumented breaking change, please report it to our repo’s issue board here; thank you!