Durable Functions v1.4.0 (GA) Release
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
andGetRawInput
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.