Support new Durable Functions backends
Durable Functions is adding a couple of new backends, in addition to the existing backend.
https://github.com/microsoft/durabletask-netherite https://microsoft.github.io/durabletask-mssql
There are a couple of scenarios we could support with the VS Code extension:
- Selecting the backend when creating Durable Functions - This is likely the main one we want to tackle
- Switching between backends - Likely a less important use case, we can solve this with documentation
Our plan is for the DurableTask extension to include support for all backends, and the backends will automatically be available when extension bundles are used.
- Storage backend is used by default (same as today). A customer can select another backend by modifying host.json.
- The Netherite backend uses Event Hubs and Storage behind the scenes. Customer needs to configure connection strings in settings.
- The SQL backend only depends on MSSQL. Customer needs to configure the SQL connection string in settings.
One potential way to support backend selection is to prompt the customer for the backend type on the first Durable Function that they create in a project. The default will continue to be Storage. If they select Netherite or SQL, we would need to prompt them for the connection string(s). Ideally we'd allow them to pull those from existing Azure resources, or perhaps even create new resources in the process.
Summarizing our quick meeting on this.
@anthonychu, @connormcmahon, @sebastianburckhardt, @cgillum will flesh out an MVP for this experience in the next couple of weeks and update this issue.
This feature request is now a candidate for our backlog. The community has 240 days to upvote the issue. If it receives 5 upvotes we will move it to our backlog. If not, we will close it. To learn more about how we handle feature requests, please see our documentation.
Happy Coding!
:slightly_smiling_face: This feature request received a sufficient number of community upvotes and we moved it to our backlog. To learn more about how we handle feature requests, please see our documentation.
Happy Coding!
Just bumping this thread, as we're nearing the release. It seems Anthony provided most of the context here, with the exception that the backend we'll be releasing first is Netherite, so we should be prioritizing support for it first.
I agree with Anthony's suggestion on the expected flow:
One potential way to support backend selection is to prompt the customer for the backend type on the first Durable Function that they create in a project. The default will continue to be Storage. If they select Netherite or SQL, we would need to prompt them for the connection string(s). Ideally we'd allow them to pull those from existing Azure resources, or perhaps even create new resources in the process.
@lilyjma 🎉🥳