TLDR; We have just published the Durable Functions for PowerShell SDK in the PowerShell Gallery. This package contains several improvements, and allows the development of the Durable Functions PowerShell to be de-coupled from the release cycle of the Azure Functions runtime. Try it out by installing `AzureFunctions.PowerShell.Durable.SDK` from the PowerShell Gallery. This is a breaking change release, so make sure to read the “breaking changes” section before upgrading.
Durable Functions (DF) makes it easy to implement robust stateful services that make full use of the scaling and billing benefits of serverless, all while using your language of choice: C#, JavaScript/TypeScript, Python, Java, and PowerShell.
As discussed in previous blog posts for the Python and Node SDKs, we've been investing heavily in improving our language SDKs. In this article, we continue that tradition by announcing a new release of the PowerShell SDK with many important reliability, correctness, and feature improvements. Additionally, we are now releasing the SDK as a standalone package in the PowerShell Gallery instead of bundling it with the PowerShell worker in the Azure Functions runtime; more details on this later in the article.
Why we're releasing the SDK as a standalone package in the PowerShell Gallery
Currently, the Durable Functions SDK for PowerShell is built-in to the PowerShell worker found in the Azure Functions runtime. This has the benefit of just working out of the box with any PowerShell Azure Functions app. However, tightly coupling the Durable Functions SDK with the Azure Functions runtime release cadence prevented us from being able to release as quickly as we would like, and also make it difficult to introduce fixes and new features which may involve breaking changes due to the managed (i.e auto-upgrading) nature of the runtime.
By releasing the SDK as a standalone package, the PowerShell now operates like all our other Durable Functions SDKs: as an independent component from their respective Azure Functions language worker. We're excited about being able to release hotfixes and improvements to the SDK much faster!
New features, breaking changes, and usage instructions:
This release includes support for sub-orchestrators, which allow you to optimize your orchestrator replay performance, and various bug fixes that constitute breaking changes. We have documented these in this guidance. There you will also find instructions on how to try out this new experience, as well as our plans for deprecating the built-in SDK experience in future major versions of the PowerShell worker. We recommend that you give it a read.
What’s next?
With these improvements now available, the team is shifting focus to bringing more feature-parity across our SDKs. Keep an eye out for news on this front soon!
Keep in touch!
This is a big change so if you encounter any issues, please report them to our GitHub repository here.
Keep in touch with me on Twitter via @davidjustodavid, or tag the team at large via @AzureFunctions.