Skip to content

Durable Functions v1.4.0 (GA) Release

Compare
Choose a tag to compare
@cgillum cgillum released this 07 May 16:33

Overview

This is the very first GA release for Durable Functions. It contains new features, various fixes, and a few small compile-time breaking changes (last-minute public surface area cleanup). The biggest focus was on improving performance and scale.

This is an officially supported release. Subsequent 1.x releases will be non-breaking upgrades.

Thanks to everyone who contributed, either via code, asking good questions, or by filing issues! Special thanks goes to @gled4er, @TsuyoshiUshio, @mikhailshilkov, @CarlosSardo, and @MS-Santi for their community contributions (including code, samples, and documentation)!

New Features

  • JavaScript orchestrator functions (preview): You can now write orchestrator functions in JavaScript. More details in our new durable-js repo: https://github.com/Azure/azure-functions-durable-js. JavaScript samples can be found here.
  • Extended sessions: Allows orchestrator functions to stay in memory longer, removing the need to frequently replay them. This is a feature which can boost performance in various scenarios. More details in our Orchestrator function replay documentation documentation.
  • Concurrency control: Configure the maximum number of orchestrator or activity functions that can run concurrently on a single host instance. More details in the Concurrency throttles documentation.
  • Configurable partition counts: Configure the number of partitions in your task hub. Previously this was fixed at 4. Now this can be between 1 and 16. More details in the Orchestrator scale-out documentation.

Fixed

  • Custom status values were not displayed in the HTTP status query API (#271)
  • Waiting for multiple event types inside a loop only responded to first event type received (#275)
  • Task hub listeners could fail to start repeatedly and endlessly (#295)
  • Scale controller didn't auto-scale out based on queue latency (#200)
  • Scaling in consumption plan didn't work when using different storage account (#179)
  • Added protection against "split brain" in Azure Storage provider (#38)

Misc

  • Change custom Event Grid eventType property from an int to a string (#294) [Breaking change!]
  • Made GetInputAsJson and GetRawInput internal [Breaking change!]
  • Replaced nullable arguments and optional parameters with proper overloads [Breaking change!]
  • Removed "version" information from traces (#282)
  • Updated all samples (C# precompiled, C# scripting, F#, and WebJobs SDK)
  • Updated .NET API documentation

Installation

Please see our installation documentation for instructions for all supported platforms.