├── .github
├── CODE_OF_CONDUCT.md
├── ISSUE_TEMPLATE.md
└── PULL_REQUEST_TEMPLATE.md
├── .gitignore
├── CHANGELOG.md
├── CONTRIBUTING.md
├── LICENSE.md
├── README.md
├── media
└── images
│ ├── OrderProcessor
│ ├── container-ports.png
│ ├── dashboard-overview.png
│ ├── dashboard-url.png
│ ├── input-output.png
│ ├── instance-details.png
│ ├── resource-group.png
│ └── taskhub.png
│ ├── PdfSummarizer
│ ├── architecture_v3.png
│ └── dotnet-code.png
│ ├── activity.png
│ ├── architecture_v2.png
│ ├── architecture_v3.png
│ ├── code.png
│ ├── connecting-dts.png
│ ├── dashboard.png
│ ├── dotnet-code.png
│ ├── dtfx
│ └── dtfx-sample-dashboard.png
│ ├── dts-connected.png
│ ├── dts-dashboard-resource.png
│ ├── dts-overview-portal.png
│ ├── durable-task-sdks
│ ├── dts-in-all-computes.png
│ └── portable-sample-dashboard.png
│ ├── portable-sdks
│ ├── dts-in-all-computes.png
│ └── portable-sample-dashboard.png
│ ├── sequence.png
│ ├── taskhub-overview-portal.png
│ ├── taskhub-overview.png
│ └── video_thumbnail.png
├── quickstarts
└── durable-functions
│ └── dotnet
│ └── HelloCities
│ ├── .devcontainer
│ ├── Dockerfile
│ ├── devcontainer.json
│ └── first-run-notice.txt
│ ├── .github
│ ├── CODE_OF_CONDUCT.md
│ ├── ISSUE_TEMPLATE.md
│ └── PULL_REQUEST_TEMPLATE.md
│ ├── .gitignore
│ ├── .vscode
│ ├── extensions.json
│ ├── launch.json
│ ├── settings.json
│ └── tasks.json
│ ├── README.md
│ ├── azure.yaml
│ ├── http
│ ├── DurableFunctionsOrchestrationCSharp1.cs
│ ├── Program.cs
│ ├── Properties
│ │ └── launchSettings.json
│ ├── hello_cities.csproj
│ └── host.json
│ ├── infra
│ ├── abbreviations.json
│ ├── app
│ │ ├── dts-Access.bicep
│ │ ├── dts.bicep
│ │ ├── durable-function.bicep
│ │ ├── storage-Access.bicep
│ │ ├── storage-PrivateEndpoint.bicep
│ │ └── vnet.bicep
│ ├── core
│ │ ├── host
│ │ │ ├── appservice-appsettings.bicep
│ │ │ ├── appservice.bicep
│ │ │ ├── appserviceplan.bicep
│ │ │ ├── functions-flexconsumption.bicep
│ │ │ └── functions.bicep
│ │ ├── identity
│ │ │ └── userAssignedIdentity.bicep
│ │ ├── monitor
│ │ │ ├── appinsights-access.bicep
│ │ │ ├── applicationinsights.bicep
│ │ │ ├── loganalytics.bicep
│ │ │ └── monitoring.bicep
│ │ ├── security
│ │ │ └── role.bicep
│ │ └── storage
│ │ │ └── storage-account.bicep
│ ├── main.bicep
│ └── main.parameters.json
│ └── scripts
│ ├── deploy.ps1
│ └── deploy.sh
└── samples
├── dtfx
└── HelloWorld
│ ├── HelloWorld.csproj
│ ├── HelloWorld.sln
│ ├── Program.cs
│ └── README.md
├── durable-functions
├── dotnet
│ ├── OrderProcessor
│ │ ├── Models.cs
│ │ ├── .gitignore
│ │ ├── .vscode
│ │ │ ├── extensions.json
│ │ │ ├── launch.json
│ │ │ ├── settings.json
│ │ │ └── tasks.json
│ │ ├── Activities
│ │ │ ├── NotifyCustomer.cs
│ │ │ ├── ProcessPayment.cs
│ │ │ ├── ReserveInventory.cs
│ │ │ └── UpdateInventory.cs
│ │ ├── OrderProcessingOrchestration.cs
│ │ ├── OrderProcessingParallelTest.cs
│ │ ├── OrderProcessor.csproj
│ │ ├── OrderProcessor.sln
│ │ ├── Program.cs
│ │ ├── Properties
│ │ │ └── launchSettings.json
│ │ ├── README.md
│ │ ├── azure.yaml
│ │ ├── host.json
│ │ ├── infra
│ │ │ ├── abbreviations.json
│ │ │ ├── app
│ │ │ │ ├── dts-Access.bicep
│ │ │ │ ├── dts.bicep
│ │ │ │ ├── durable-function.bicep
│ │ │ │ ├── storage-Access.bicep
│ │ │ │ ├── storage-PrivateEndpoint.bicep
│ │ │ │ └── vnet.bicep
│ │ │ ├── core
│ │ │ │ ├── host
│ │ │ │ │ ├── appservice-appsettings.bicep
│ │ │ │ │ ├── appservice.bicep
│ │ │ │ │ ├── appserviceplan.bicep
│ │ │ │ │ └── functions.bicep
│ │ │ │ ├── identity
│ │ │ │ │ └── userAssignedIdentity.bicep
│ │ │ │ ├── monitor
│ │ │ │ │ ├── appinsights-access.bicep
│ │ │ │ │ ├── applicationinsights.bicep
│ │ │ │ │ ├── loganalytics.bicep
│ │ │ │ │ └── monitoring.bicep
│ │ │ │ ├── security
│ │ │ │ │ └── role.bicep
│ │ │ │ └── storage
│ │ │ │ │ └── storage-account.bicep
│ │ │ ├── main.bicep
│ │ │ ├── main.parameters.json
│ │ │ ├── modules
│ │ │ │ └── fetch-container-image.bicep
│ │ │ └── shared
│ │ │ │ ├── apps-env.bicep
│ │ │ │ ├── dashboard-web.bicep
│ │ │ │ ├── keyvault.bicep
│ │ │ │ ├── monitoring.bicep
│ │ │ │ └── registry.bicep
│ │ └── scripts
│ │ │ ├── deploy.ps1
│ │ │ └── deploy.sh
│ ├── PdfSummarizer
│ │ ├── .gitignore
│ │ ├── .vscode
│ │ │ ├── extensions.json
│ │ │ ├── launch.json
│ │ │ ├── settings.json
│ │ │ └── tasks.json
│ │ ├── PdfSummarizer.cs
│ │ ├── Program.cs
│ │ ├── Properties
│ │ │ └── launchSettings.json
│ │ ├── README.md
│ │ ├── azure.yaml
│ │ ├── host.json
│ │ ├── infra
│ │ │ ├── abbreviations.json
│ │ │ ├── app
│ │ │ │ ├── documentintelligence-Access.bicep
│ │ │ │ ├── dts-Access.bicep
│ │ │ │ ├── dts.bicep
│ │ │ │ ├── durable-function.bicep
│ │ │ │ ├── openai-Access.bicep
│ │ │ │ ├── storage-Access.bicep
│ │ │ │ ├── storage-PrivateEndpoint.bicep
│ │ │ │ └── vnet.bicep
│ │ │ ├── core
│ │ │ │ ├── ai
│ │ │ │ │ └── openai.bicep
│ │ │ │ ├── host
│ │ │ │ │ ├── appservice-appsettings.bicep
│ │ │ │ │ ├── appservice.bicep
│ │ │ │ │ ├── appserviceplan.bicep
│ │ │ │ │ ├── functions-flexconsumption.bicep
│ │ │ │ │ └── functions.bicep
│ │ │ │ ├── identity
│ │ │ │ │ └── userAssignedIdentity.bicep
│ │ │ │ ├── monitor
│ │ │ │ │ ├── appinsights-access.bicep
│ │ │ │ │ ├── applicationinsights.bicep
│ │ │ │ │ ├── loganalytics.bicep
│ │ │ │ │ └── monitoring.bicep
│ │ │ │ ├── security
│ │ │ │ │ └── role.bicep
│ │ │ │ └── storage
│ │ │ │ │ └── storage-account.bicep
│ │ │ ├── main.bicep
│ │ │ ├── main.parameters.json
│ │ │ ├── modules
│ │ │ │ └── fetch-container-image.bicep
│ │ │ └── shared
│ │ │ │ ├── apps-env.bicep
│ │ │ │ ├── dashboard-web.bicep
│ │ │ │ ├── keyvault.bicep
│ │ │ │ ├── monitoring.bicep
│ │ │ │ └── registry.bicep
│ │ ├── pdf-summarizer-dotnet.csproj
│ │ └── scripts
│ │ │ ├── deploy.ps1
│ │ │ └── deploy.sh
│ └── README.md
└── python
│ └── pdf-summarizer
│ ├── .gitignore
│ ├── README.md
│ ├── azure.yaml
│ ├── function_app.py
│ ├── host.json
│ ├── infra
│ ├── abbreviations.json
│ ├── app
│ │ ├── documentintelligence-Access.bicep
│ │ ├── dts-Access.bicep
│ │ ├── dts.bicep
│ │ ├── durable-function.bicep
│ │ ├── openai-Access.bicep
│ │ ├── storage-Access.bicep
│ │ ├── storage-PrivateEndpoint.bicep
│ │ └── vnet.bicep
│ ├── core
│ │ ├── ai
│ │ │ └── cognitiveservices.bicep
│ │ ├── host
│ │ │ ├── appservice-appsettings.bicep
│ │ │ ├── appservice.bicep
│ │ │ ├── appserviceplan.bicep
│ │ │ ├── functions-flexconsumption.bicep
│ │ │ └── functions.bicep
│ │ ├── identity
│ │ │ └── userAssignedIdentity.bicep
│ │ ├── monitor
│ │ │ ├── appinsights-access.bicep
│ │ │ ├── applicationinsights.bicep
│ │ │ ├── loganalytics.bicep
│ │ │ └── monitoring.bicep
│ │ ├── security
│ │ │ └── role.bicep
│ │ └── storage
│ │ │ └── storage-account.bicep
│ ├── main.bicep
│ ├── main.parameters.json
│ ├── modules
│ │ └── fetch-container-image.bicep
│ └── shared
│ │ ├── apps-env.bicep
│ │ ├── dashboard-web.bicep
│ │ ├── keyvault.bicep
│ │ ├── monitoring.bicep
│ │ └── registry.bicep
│ ├── next-steps.md
│ └── requirements.txt
├── durable-task-sdks
├── dotnet
│ ├── .editorconfig
│ ├── AspNetWebApp
│ │ ├── AspNetWebApp.csproj
│ │ ├── DockerFile
│ │ ├── Orchestrations
│ │ │ └── HelloCities.cs
│ │ ├── Program.cs
│ │ ├── Properties
│ │ │ └── launchSettings.json
│ │ ├── README.md
│ │ ├── ScenariosController.cs
│ │ ├── Utils.cs
│ │ ├── appsettings.Development.json
│ │ ├── appsettings.Production.json
│ │ └── appsettings.json
│ ├── EntitiesSample
│ │ ├── AccountTransferBackend.csproj
│ │ ├── Controllers
│ │ │ └── AccountsController.cs
│ │ ├── Entities
│ │ │ └── Account.cs
│ │ ├── EntitiesSample.sln
│ │ ├── Models
│ │ │ ├── TransactionRequest.cs
│ │ │ └── TransferFundsRequest.cs
│ │ ├── Orchestrations
│ │ │ └── TransferFundsOrchestration.cs
│ │ ├── Program.cs
│ │ ├── Properties
│ │ │ └── launchSettings.json
│ │ ├── README.md
│ │ ├── appsettings.Development.json
│ │ ├── appsettings.json
│ │ └── demo.http
│ ├── FanOutFanIn
│ │ ├── Client
│ │ │ ├── Client.csproj
│ │ │ └── Program.cs
│ │ ├── README.md
│ │ └── Worker
│ │ │ ├── ParallelProcessingOrchestration.cs
│ │ │ ├── Program.cs
│ │ │ └── Worker.csproj
│ ├── FunctionChaining
│ │ ├── .gitignore
│ │ ├── Client
│ │ │ ├── Client.csproj
│ │ │ ├── Dockerfile
│ │ │ └── Program.cs
│ │ ├── FunctionChaining.sln
│ │ ├── README.md
│ │ ├── Worker
│ │ │ ├── Dockerfile
│ │ │ ├── GreetingOrchestration.cs
│ │ │ ├── Program.cs
│ │ │ └── Worker.csproj
│ │ ├── azure.yaml
│ │ └── infra
│ │ │ ├── abbreviations.json
│ │ │ ├── app
│ │ │ ├── app.bicep
│ │ │ ├── dts.bicep
│ │ │ └── user-assigned-identity.bicep
│ │ │ ├── core
│ │ │ ├── ai
│ │ │ │ ├── cognitiveservices.bicep
│ │ │ │ ├── hub-dependencies.bicep
│ │ │ │ ├── hub.bicep
│ │ │ │ └── project.bicep
│ │ │ ├── config
│ │ │ │ └── configstore.bicep
│ │ │ ├── database
│ │ │ │ ├── cosmos
│ │ │ │ │ ├── cosmos-account.bicep
│ │ │ │ │ ├── mongo
│ │ │ │ │ │ ├── cosmos-mongo-account.bicep
│ │ │ │ │ │ └── cosmos-mongo-db.bicep
│ │ │ │ │ └── sql
│ │ │ │ │ │ ├── cosmos-sql-account.bicep
│ │ │ │ │ │ ├── cosmos-sql-db.bicep
│ │ │ │ │ │ ├── cosmos-sql-role-assign.bicep
│ │ │ │ │ │ └── cosmos-sql-role-def.bicep
│ │ │ │ ├── mysql
│ │ │ │ │ └── flexibleserver.bicep
│ │ │ │ ├── postgresql
│ │ │ │ │ └── flexibleserver.bicep
│ │ │ │ └── sqlserver
│ │ │ │ │ └── sqlserver.bicep
│ │ │ ├── gateway
│ │ │ │ └── apim.bicep
│ │ │ ├── host
│ │ │ │ ├── ai-environment.bicep
│ │ │ │ ├── aks-agent-pool.bicep
│ │ │ │ ├── aks-managed-cluster.bicep
│ │ │ │ ├── aks.bicep
│ │ │ │ ├── appservice-appsettings.bicep
│ │ │ │ ├── appservice.bicep
│ │ │ │ ├── appserviceplan.bicep
│ │ │ │ ├── container-app-upsert.bicep
│ │ │ │ ├── container-app.bicep
│ │ │ │ ├── container-apps-environment.bicep
│ │ │ │ ├── container-apps.bicep
│ │ │ │ ├── container-apps
│ │ │ │ │ ├── app.bicep
│ │ │ │ │ └── managed.bicep
│ │ │ │ ├── container-registry.bicep
│ │ │ │ ├── functions.bicep
│ │ │ │ └── staticwebapp.bicep
│ │ │ ├── monitor
│ │ │ │ ├── applicationinsights-dashboard.bicep
│ │ │ │ ├── applicationinsights.bicep
│ │ │ │ ├── loganalytics.bicep
│ │ │ │ └── monitoring.bicep
│ │ │ ├── networking
│ │ │ │ ├── cdn-endpoint.bicep
│ │ │ │ ├── cdn-profile.bicep
│ │ │ │ ├── cdn.bicep
│ │ │ │ └── vnet.bicep
│ │ │ ├── search
│ │ │ │ └── search-services.bicep
│ │ │ ├── security
│ │ │ │ ├── aks-managed-cluster-access.bicep
│ │ │ │ ├── configstore-access.bicep
│ │ │ │ ├── keyvault-access.bicep
│ │ │ │ ├── keyvault-secret.bicep
│ │ │ │ ├── keyvault.bicep
│ │ │ │ ├── registry-access.bicep
│ │ │ │ └── role.bicep
│ │ │ ├── storage
│ │ │ │ └── storage-account.bicep
│ │ │ └── testing
│ │ │ │ └── loadtesting.bicep
│ │ │ ├── main.bicep
│ │ │ └── main.parameters.json
│ ├── HumanInteraction
│ │ ├── Client
│ │ │ ├── ApprovalResponseData.cs
│ │ │ ├── Client.csproj
│ │ │ └── Program.cs
│ │ ├── README.md
│ │ └── Worker
│ │ │ ├── ApprovalActivityInputs.cs
│ │ │ ├── ApprovalOrchestration.cs
│ │ │ ├── Program.cs
│ │ │ └── Worker.csproj
│ ├── OrchestrationVersioning
│ │ ├── DockerFile
│ │ ├── OrchestrationVersioning.csproj
│ │ ├── Orchestrations
│ │ │ └── HelloCities.cs
│ │ ├── Program.cs
│ │ ├── Properties
│ │ │ └── launchSettings.json
│ │ ├── README.md
│ │ ├── ScenariosController.cs
│ │ ├── Utils.cs
│ │ ├── appsettings.Development.json
│ │ ├── appsettings.Production.json
│ │ └── appsettings.json
│ └── ScheduleWebApp
│ │ ├── Models
│ │ ├── CreateScheduleRequest.cs
│ │ └── UpdateScheduleRequest.cs
│ │ ├── Orchestrations
│ │ └── CacheClearingOrchestrator.cs
│ │ ├── Program.cs
│ │ ├── README.md
│ │ ├── ScheduleController.cs
│ │ ├── ScheduleWebApp.csproj
│ │ ├── ScheduleWebApp.http
│ │ ├── appsettings.Development.json
│ │ ├── appsettings.Production.json
│ │ └── appsettings.json
├── java
│ ├── README.md
│ ├── async-http-api
│ │ ├── build.gradle
│ │ ├── gradle
│ │ │ └── wrapper
│ │ │ │ ├── gradle-wrapper.jar
│ │ │ │ └── gradle-wrapper.properties
│ │ ├── gradlew
│ │ ├── gradlew.bat
│ │ └── src
│ │ │ └── main
│ │ │ ├── java
│ │ │ └── io
│ │ │ │ └── durabletask
│ │ │ │ └── samples
│ │ │ │ └── WebApi.java
│ │ │ └── resources
│ │ │ ├── application.properties
│ │ │ ├── logback-spring.xml
│ │ │ └── webapi.http
│ ├── eternal-orchestrations
│ │ ├── build.gradle
│ │ ├── gradle
│ │ │ └── wrapper
│ │ │ │ ├── gradle-wrapper.jar
│ │ │ │ └── gradle-wrapper.properties
│ │ ├── gradlew
│ │ ├── gradlew.bat
│ │ └── src
│ │ │ └── main
│ │ │ ├── java
│ │ │ └── io
│ │ │ │ └── durabletask
│ │ │ │ └── samples
│ │ │ │ └── EternalOrchestration.java
│ │ │ └── resources
│ │ │ └── logback-spring.xml
│ ├── fan-out-fan-in
│ │ ├── build.gradle
│ │ ├── gradle
│ │ │ └── wrapper
│ │ │ │ ├── gradle-wrapper.jar
│ │ │ │ └── gradle-wrapper.properties
│ │ ├── gradlew
│ │ ├── gradlew.bat
│ │ └── src
│ │ │ └── main
│ │ │ ├── java
│ │ │ └── io
│ │ │ │ └── durabletask
│ │ │ │ └── samples
│ │ │ │ └── FanOutFanInPattern.java
│ │ │ └── resources
│ │ │ └── logback-spring.xml
│ ├── function-chaining
│ │ ├── Dockerfile
│ │ ├── README.md
│ │ ├── azure.yaml
│ │ ├── build.gradle
│ │ ├── gradle
│ │ │ └── wrapper
│ │ │ │ ├── gradle-wrapper.jar
│ │ │ │ └── gradle-wrapper.properties
│ │ ├── gradlew
│ │ ├── gradlew.bat
│ │ ├── infra
│ │ │ ├── abbreviations.json
│ │ │ ├── app
│ │ │ │ ├── app.bicep
│ │ │ │ ├── dts.bicep
│ │ │ │ └── user-assigned-identity.bicep
│ │ │ ├── core
│ │ │ │ ├── ai
│ │ │ │ │ ├── cognitiveservices.bicep
│ │ │ │ │ ├── hub-dependencies.bicep
│ │ │ │ │ ├── hub.bicep
│ │ │ │ │ └── project.bicep
│ │ │ │ ├── config
│ │ │ │ │ └── configstore.bicep
│ │ │ │ ├── database
│ │ │ │ │ ├── cosmos
│ │ │ │ │ │ ├── cosmos-account.bicep
│ │ │ │ │ │ ├── mongo
│ │ │ │ │ │ │ ├── cosmos-mongo-account.bicep
│ │ │ │ │ │ │ └── cosmos-mongo-db.bicep
│ │ │ │ │ │ └── sql
│ │ │ │ │ │ │ ├── cosmos-sql-account.bicep
│ │ │ │ │ │ │ ├── cosmos-sql-db.bicep
│ │ │ │ │ │ │ ├── cosmos-sql-role-assign.bicep
│ │ │ │ │ │ │ └── cosmos-sql-role-def.bicep
│ │ │ │ │ ├── mysql
│ │ │ │ │ │ └── flexibleserver.bicep
│ │ │ │ │ ├── postgresql
│ │ │ │ │ │ └── flexibleserver.bicep
│ │ │ │ │ └── sqlserver
│ │ │ │ │ │ └── sqlserver.bicep
│ │ │ │ ├── gateway
│ │ │ │ │ └── apim.bicep
│ │ │ │ ├── host
│ │ │ │ │ ├── ai-environment.bicep
│ │ │ │ │ ├── aks-agent-pool.bicep
│ │ │ │ │ ├── aks-managed-cluster.bicep
│ │ │ │ │ ├── aks.bicep
│ │ │ │ │ ├── appservice-appsettings.bicep
│ │ │ │ │ ├── appservice.bicep
│ │ │ │ │ ├── appserviceplan.bicep
│ │ │ │ │ ├── container-app-upsert.bicep
│ │ │ │ │ ├── container-app.bicep
│ │ │ │ │ ├── container-apps-environment.bicep
│ │ │ │ │ ├── container-apps.bicep
│ │ │ │ │ ├── container-apps
│ │ │ │ │ │ ├── app.bicep
│ │ │ │ │ │ └── managed.bicep
│ │ │ │ │ ├── container-registry.bicep
│ │ │ │ │ ├── functions.bicep
│ │ │ │ │ └── staticwebapp.bicep
│ │ │ │ ├── monitor
│ │ │ │ │ ├── applicationinsights-dashboard.bicep
│ │ │ │ │ ├── applicationinsights.bicep
│ │ │ │ │ ├── loganalytics.bicep
│ │ │ │ │ └── monitoring.bicep
│ │ │ │ ├── networking
│ │ │ │ │ ├── cdn-endpoint.bicep
│ │ │ │ │ ├── cdn-profile.bicep
│ │ │ │ │ ├── cdn.bicep
│ │ │ │ │ └── vnet.bicep
│ │ │ │ ├── search
│ │ │ │ │ └── search-services.bicep
│ │ │ │ ├── security
│ │ │ │ │ ├── aks-managed-cluster-access.bicep
│ │ │ │ │ ├── configstore-access.bicep
│ │ │ │ │ ├── keyvault-access.bicep
│ │ │ │ │ ├── keyvault-secret.bicep
│ │ │ │ │ ├── keyvault.bicep
│ │ │ │ │ ├── registry-access.bicep
│ │ │ │ │ └── role.bicep
│ │ │ │ ├── storage
│ │ │ │ │ └── storage-account.bicep
│ │ │ │ └── testing
│ │ │ │ │ └── loadtesting.bicep
│ │ │ ├── main.bicep
│ │ │ └── main.parameters.json
│ │ └── src
│ │ │ └── main
│ │ │ ├── java
│ │ │ └── io
│ │ │ │ └── durabletask
│ │ │ │ └── samples
│ │ │ │ └── ChainingPattern.java
│ │ │ └── resources
│ │ │ └── logback-spring.xml
│ ├── human-interaction
│ │ ├── build.gradle
│ │ ├── gradle
│ │ │ └── wrapper
│ │ │ │ ├── gradle-wrapper.jar
│ │ │ │ └── gradle-wrapper.properties
│ │ ├── gradlew
│ │ ├── gradlew.bat
│ │ └── src
│ │ │ └── main
│ │ │ ├── java
│ │ │ └── io
│ │ │ │ └── durabletask
│ │ │ │ └── samples
│ │ │ │ └── HumanInteraction.java
│ │ │ └── resources
│ │ │ └── logback-spring.xml
│ ├── monitoring
│ │ ├── build.gradle
│ │ ├── gradle
│ │ │ └── wrapper
│ │ │ │ ├── gradle-wrapper.jar
│ │ │ │ └── gradle-wrapper.properties
│ │ ├── gradlew
│ │ ├── gradlew.bat
│ │ └── src
│ │ │ └── main
│ │ │ ├── java
│ │ │ └── io
│ │ │ │ └── durabletask
│ │ │ │ └── samples
│ │ │ │ └── MonitoringPattern.java
│ │ │ └── resources
│ │ │ └── logback-spring.xml
│ └── sub-orchestrations
│ │ ├── build.gradle
│ │ ├── gradle
│ │ └── wrapper
│ │ │ ├── gradle-wrapper.jar
│ │ │ └── gradle-wrapper.properties
│ │ ├── gradlew
│ │ ├── gradlew.bat
│ │ └── src
│ │ └── main
│ │ ├── java
│ │ └── io
│ │ │ └── durabletask
│ │ │ └── samples
│ │ │ └── SubOrchestrationPattern.java
│ │ └── resources
│ │ └── logback-spring.xml
└── python
│ ├── async-http-api
│ ├── README.md
│ ├── client.py
│ ├── requirements.txt
│ └── worker.py
│ ├── eternal-orchestrations
│ ├── README.md
│ ├── client.py
│ ├── requirements.txt
│ └── worker.py
│ ├── fan-out-fan-in
│ ├── README.md
│ ├── client.py
│ ├── requirements.txt
│ └── worker.py
│ ├── function-chaining
│ ├── Dockerfile.client
│ ├── Dockerfile.worker
│ ├── README.md
│ ├── azure.yaml
│ ├── client.py
│ ├── infra
│ │ ├── abbreviations.json
│ │ ├── app
│ │ │ ├── app.bicep
│ │ │ ├── dts.bicep
│ │ │ └── user-assigned-identity.bicep
│ │ ├── core
│ │ │ ├── ai
│ │ │ │ ├── cognitiveservices.bicep
│ │ │ │ ├── hub-dependencies.bicep
│ │ │ │ ├── hub.bicep
│ │ │ │ └── project.bicep
│ │ │ ├── config
│ │ │ │ └── configstore.bicep
│ │ │ ├── database
│ │ │ │ ├── cosmos
│ │ │ │ │ ├── cosmos-account.bicep
│ │ │ │ │ ├── mongo
│ │ │ │ │ │ ├── cosmos-mongo-account.bicep
│ │ │ │ │ │ └── cosmos-mongo-db.bicep
│ │ │ │ │ └── sql
│ │ │ │ │ │ ├── cosmos-sql-account.bicep
│ │ │ │ │ │ ├── cosmos-sql-db.bicep
│ │ │ │ │ │ ├── cosmos-sql-role-assign.bicep
│ │ │ │ │ │ └── cosmos-sql-role-def.bicep
│ │ │ │ ├── mysql
│ │ │ │ │ └── flexibleserver.bicep
│ │ │ │ ├── postgresql
│ │ │ │ │ └── flexibleserver.bicep
│ │ │ │ └── sqlserver
│ │ │ │ │ └── sqlserver.bicep
│ │ │ ├── gateway
│ │ │ │ └── apim.bicep
│ │ │ ├── host
│ │ │ │ ├── ai-environment.bicep
│ │ │ │ ├── aks-agent-pool.bicep
│ │ │ │ ├── aks-managed-cluster.bicep
│ │ │ │ ├── aks.bicep
│ │ │ │ ├── appservice-appsettings.bicep
│ │ │ │ ├── appservice.bicep
│ │ │ │ ├── appserviceplan.bicep
│ │ │ │ ├── container-app-upsert.bicep
│ │ │ │ ├── container-app.bicep
│ │ │ │ ├── container-apps-environment.bicep
│ │ │ │ ├── container-apps.bicep
│ │ │ │ ├── container-apps
│ │ │ │ │ ├── app.bicep
│ │ │ │ │ └── managed.bicep
│ │ │ │ ├── container-registry.bicep
│ │ │ │ ├── functions.bicep
│ │ │ │ └── staticwebapp.bicep
│ │ │ ├── monitor
│ │ │ │ ├── applicationinsights-dashboard.bicep
│ │ │ │ ├── applicationinsights.bicep
│ │ │ │ ├── loganalytics.bicep
│ │ │ │ └── monitoring.bicep
│ │ │ ├── networking
│ │ │ │ ├── cdn-endpoint.bicep
│ │ │ │ ├── cdn-profile.bicep
│ │ │ │ ├── cdn.bicep
│ │ │ │ └── vnet.bicep
│ │ │ ├── search
│ │ │ │ └── search-services.bicep
│ │ │ ├── security
│ │ │ │ ├── aks-managed-cluster-access.bicep
│ │ │ │ ├── configstore-access.bicep
│ │ │ │ ├── keyvault-access.bicep
│ │ │ │ ├── keyvault-secret.bicep
│ │ │ │ ├── keyvault.bicep
│ │ │ │ ├── registry-access.bicep
│ │ │ │ └── role.bicep
│ │ │ ├── storage
│ │ │ │ └── storage-account.bicep
│ │ │ └── testing
│ │ │ │ └── loadtesting.bicep
│ │ ├── main.bicep
│ │ └── main.parameters.json
│ ├── requirements.txt
│ └── worker.py
│ ├── human-interaction
│ ├── README.md
│ ├── client.py
│ ├── requirements.txt
│ └── worker.py
│ ├── monitoring
│ ├── README.md
│ ├── client.py
│ ├── requirements.txt
│ └── worker.py
│ └── sub-orchestrations
│ ├── README.md
│ ├── client.py
│ ├── requirements.txt
│ └── worker.py
└── scenarios
└── AutoscalingInACA
├── .gitignore
├── AutoscalingInACA.sln
├── Client
├── Client.csproj
├── Dockerfile
└── Program.cs
├── README.md
├── Worker
├── Dockerfile
├── GreetingOrchestration.cs
├── Program.cs
└── Worker.csproj
├── azure.yaml
└── infra
├── abbreviations.json
├── app
├── app.bicep
├── dts.bicep
└── user-assigned-identity.bicep
├── core
├── ai
│ ├── cognitiveservices.bicep
│ ├── hub-dependencies.bicep
│ ├── hub.bicep
│ └── project.bicep
├── config
│ └── configstore.bicep
├── database
│ ├── cosmos
│ │ ├── cosmos-account.bicep
│ │ ├── mongo
│ │ │ ├── cosmos-mongo-account.bicep
│ │ │ └── cosmos-mongo-db.bicep
│ │ └── sql
│ │ │ ├── cosmos-sql-account.bicep
│ │ │ ├── cosmos-sql-db.bicep
│ │ │ ├── cosmos-sql-role-assign.bicep
│ │ │ └── cosmos-sql-role-def.bicep
│ ├── mysql
│ │ └── flexibleserver.bicep
│ ├── postgresql
│ │ └── flexibleserver.bicep
│ └── sqlserver
│ │ └── sqlserver.bicep
├── gateway
│ └── apim.bicep
├── host
│ ├── ai-environment.bicep
│ ├── aks-agent-pool.bicep
│ ├── aks-managed-cluster.bicep
│ ├── aks.bicep
│ ├── appservice-appsettings.bicep
│ ├── appservice.bicep
│ ├── appserviceplan.bicep
│ ├── container-app-upsert.bicep
│ ├── container-app.bicep
│ ├── container-apps-environment.bicep
│ ├── container-apps.bicep
│ ├── container-apps
│ │ ├── app.bicep
│ │ └── managed.bicep
│ ├── container-registry.bicep
│ ├── functions.bicep
│ └── staticwebapp.bicep
├── monitor
│ ├── applicationinsights-dashboard.bicep
│ ├── applicationinsights.bicep
│ ├── loganalytics.bicep
│ └── monitoring.bicep
├── networking
│ ├── cdn-endpoint.bicep
│ ├── cdn-profile.bicep
│ ├── cdn.bicep
│ └── vnet.bicep
├── search
│ └── search-services.bicep
├── security
│ ├── aks-managed-cluster-access.bicep
│ ├── configstore-access.bicep
│ ├── keyvault-access.bicep
│ ├── keyvault-secret.bicep
│ ├── keyvault.bicep
│ ├── registry-access.bicep
│ └── role.bicep
├── storage
│ └── storage-account.bicep
└── testing
│ └── loadtesting.bicep
├── main.bicep
└── main.parameters.json
/.github/CODE_OF_CONDUCT.md:
--------------------------------------------------------------------------------
1 | # Microsoft Open Source Code of Conduct
2 |
3 | This project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/).
4 |
5 | Resources:
6 |
7 | - [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/)
8 | - [Microsoft Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/)
9 | - Contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with questions or concerns
10 |
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE.md:
--------------------------------------------------------------------------------
1 |
4 | > Please provide us with the following information:
5 | > ---------------------------------------------------------------
6 |
7 | ### This issue is for a: (mark with an `x`)
8 | ```
9 | - [ ] bug report -> please search issues before submitting
10 | - [ ] feature request
11 | - [ ] documentation issue or request
12 | - [ ] regression (a behavior that used to work and stopped in a new release)
13 | ```
14 |
15 | ### Minimal steps to reproduce
16 | >
17 |
18 | ### Any log messages given by the failure
19 | >
20 |
21 | ### Expected/desired behavior
22 | >
23 |
24 | ### OS and Version?
25 | > Windows 7, 8 or 10. Linux (which distribution). macOS (Yosemite? El Capitan? Sierra?)
26 |
27 | ### Versions
28 | >
29 |
30 | ### Mention any other details that might be useful
31 |
32 | > ---------------------------------------------------------------
33 | > Thanks! We'll be in touch soon.
34 |
--------------------------------------------------------------------------------
/.github/PULL_REQUEST_TEMPLATE.md:
--------------------------------------------------------------------------------
1 | ## Purpose
2 |
3 | * ...
4 |
5 | ## Does this introduce a breaking change?
6 |
7 | ```
8 | [ ] Yes
9 | [ ] No
10 | ```
11 |
12 | ## Pull Request Type
13 | What kind of change does this Pull Request introduce?
14 |
15 |
16 | ```
17 | [ ] Bugfix
18 | [ ] Feature
19 | [ ] Code style update (formatting, local variables)
20 | [ ] Refactoring (no functional changes, no api changes)
21 | [ ] Documentation content changes
22 | [ ] Other... Please describe:
23 | ```
24 |
25 | ## How to Test
26 | * Get the code
27 |
28 | ```
29 | git clone [repo-address]
30 | cd [repo-name]
31 | git checkout [branch-name]
32 | npm install
33 | ```
34 |
35 | * Test the code
36 |
37 | ```
38 | ```
39 |
40 | ## What to Check
41 | Verify that the following are valid
42 | * ...
43 |
44 | ## Other Information
45 |
--------------------------------------------------------------------------------
/CHANGELOG.md:
--------------------------------------------------------------------------------
1 | ## [project-title] Changelog
2 |
3 |
4 | # x.y.z (yyyy-mm-dd)
5 |
6 | *Features*
7 | * ...
8 |
9 | *Bug Fixes*
10 | * ...
11 |
12 | *Breaking Changes*
13 | * ...
14 |
--------------------------------------------------------------------------------
/LICENSE.md:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) Microsoft Corporation.
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE
--------------------------------------------------------------------------------
/media/images/OrderProcessor/container-ports.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Azure-Samples/Durable-Task-Scheduler/6c912382500cdebecc07f17f94804d543b59cffe/media/images/OrderProcessor/container-ports.png
--------------------------------------------------------------------------------
/media/images/OrderProcessor/dashboard-overview.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Azure-Samples/Durable-Task-Scheduler/6c912382500cdebecc07f17f94804d543b59cffe/media/images/OrderProcessor/dashboard-overview.png
--------------------------------------------------------------------------------
/media/images/OrderProcessor/dashboard-url.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Azure-Samples/Durable-Task-Scheduler/6c912382500cdebecc07f17f94804d543b59cffe/media/images/OrderProcessor/dashboard-url.png
--------------------------------------------------------------------------------
/media/images/OrderProcessor/input-output.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Azure-Samples/Durable-Task-Scheduler/6c912382500cdebecc07f17f94804d543b59cffe/media/images/OrderProcessor/input-output.png
--------------------------------------------------------------------------------
/media/images/OrderProcessor/instance-details.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Azure-Samples/Durable-Task-Scheduler/6c912382500cdebecc07f17f94804d543b59cffe/media/images/OrderProcessor/instance-details.png
--------------------------------------------------------------------------------
/media/images/OrderProcessor/resource-group.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Azure-Samples/Durable-Task-Scheduler/6c912382500cdebecc07f17f94804d543b59cffe/media/images/OrderProcessor/resource-group.png
--------------------------------------------------------------------------------
/media/images/OrderProcessor/taskhub.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Azure-Samples/Durable-Task-Scheduler/6c912382500cdebecc07f17f94804d543b59cffe/media/images/OrderProcessor/taskhub.png
--------------------------------------------------------------------------------
/media/images/PdfSummarizer/architecture_v3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Azure-Samples/Durable-Task-Scheduler/6c912382500cdebecc07f17f94804d543b59cffe/media/images/PdfSummarizer/architecture_v3.png
--------------------------------------------------------------------------------
/media/images/PdfSummarizer/dotnet-code.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Azure-Samples/Durable-Task-Scheduler/6c912382500cdebecc07f17f94804d543b59cffe/media/images/PdfSummarizer/dotnet-code.png
--------------------------------------------------------------------------------
/media/images/activity.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Azure-Samples/Durable-Task-Scheduler/6c912382500cdebecc07f17f94804d543b59cffe/media/images/activity.png
--------------------------------------------------------------------------------
/media/images/architecture_v2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Azure-Samples/Durable-Task-Scheduler/6c912382500cdebecc07f17f94804d543b59cffe/media/images/architecture_v2.png
--------------------------------------------------------------------------------
/media/images/architecture_v3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Azure-Samples/Durable-Task-Scheduler/6c912382500cdebecc07f17f94804d543b59cffe/media/images/architecture_v3.png
--------------------------------------------------------------------------------
/media/images/code.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Azure-Samples/Durable-Task-Scheduler/6c912382500cdebecc07f17f94804d543b59cffe/media/images/code.png
--------------------------------------------------------------------------------
/media/images/connecting-dts.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Azure-Samples/Durable-Task-Scheduler/6c912382500cdebecc07f17f94804d543b59cffe/media/images/connecting-dts.png
--------------------------------------------------------------------------------
/media/images/dashboard.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Azure-Samples/Durable-Task-Scheduler/6c912382500cdebecc07f17f94804d543b59cffe/media/images/dashboard.png
--------------------------------------------------------------------------------
/media/images/dotnet-code.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Azure-Samples/Durable-Task-Scheduler/6c912382500cdebecc07f17f94804d543b59cffe/media/images/dotnet-code.png
--------------------------------------------------------------------------------
/media/images/dtfx/dtfx-sample-dashboard.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Azure-Samples/Durable-Task-Scheduler/6c912382500cdebecc07f17f94804d543b59cffe/media/images/dtfx/dtfx-sample-dashboard.png
--------------------------------------------------------------------------------
/media/images/dts-connected.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Azure-Samples/Durable-Task-Scheduler/6c912382500cdebecc07f17f94804d543b59cffe/media/images/dts-connected.png
--------------------------------------------------------------------------------
/media/images/dts-dashboard-resource.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Azure-Samples/Durable-Task-Scheduler/6c912382500cdebecc07f17f94804d543b59cffe/media/images/dts-dashboard-resource.png
--------------------------------------------------------------------------------
/media/images/dts-overview-portal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Azure-Samples/Durable-Task-Scheduler/6c912382500cdebecc07f17f94804d543b59cffe/media/images/dts-overview-portal.png
--------------------------------------------------------------------------------
/media/images/durable-task-sdks/dts-in-all-computes.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Azure-Samples/Durable-Task-Scheduler/6c912382500cdebecc07f17f94804d543b59cffe/media/images/durable-task-sdks/dts-in-all-computes.png
--------------------------------------------------------------------------------
/media/images/durable-task-sdks/portable-sample-dashboard.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Azure-Samples/Durable-Task-Scheduler/6c912382500cdebecc07f17f94804d543b59cffe/media/images/durable-task-sdks/portable-sample-dashboard.png
--------------------------------------------------------------------------------
/media/images/portable-sdks/dts-in-all-computes.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Azure-Samples/Durable-Task-Scheduler/6c912382500cdebecc07f17f94804d543b59cffe/media/images/portable-sdks/dts-in-all-computes.png
--------------------------------------------------------------------------------
/media/images/portable-sdks/portable-sample-dashboard.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Azure-Samples/Durable-Task-Scheduler/6c912382500cdebecc07f17f94804d543b59cffe/media/images/portable-sdks/portable-sample-dashboard.png
--------------------------------------------------------------------------------
/media/images/sequence.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Azure-Samples/Durable-Task-Scheduler/6c912382500cdebecc07f17f94804d543b59cffe/media/images/sequence.png
--------------------------------------------------------------------------------
/media/images/taskhub-overview-portal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Azure-Samples/Durable-Task-Scheduler/6c912382500cdebecc07f17f94804d543b59cffe/media/images/taskhub-overview-portal.png
--------------------------------------------------------------------------------
/media/images/taskhub-overview.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Azure-Samples/Durable-Task-Scheduler/6c912382500cdebecc07f17f94804d543b59cffe/media/images/taskhub-overview.png
--------------------------------------------------------------------------------
/media/images/video_thumbnail.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Azure-Samples/Durable-Task-Scheduler/6c912382500cdebecc07f17f94804d543b59cffe/media/images/video_thumbnail.png
--------------------------------------------------------------------------------
/quickstarts/durable-functions/dotnet/HelloCities/.devcontainer/devcontainer.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "Functions Quickstarts Codespace",
3 | "dockerFile": "Dockerfile",
4 | "features": {
5 | "azure-cli": "latest"
6 | },
7 | "customizations": {
8 | "vscode": {
9 | "extensions": [
10 | "ms-azuretools.vscode-bicep",
11 | "ms-azuretools.vscode-docker",
12 | "ms-azuretools.vscode-azurefunctions",
13 | "GitHub.copilot",
14 | "humao.rest-client"
15 | ]
16 | }
17 | },
18 | "mounts": [
19 | // Mount docker-in-docker library volume
20 | "source=codespaces-linux-var-lib-docker,target=/var/lib/docker,type=volume"
21 | ],
22 | // Always run image-defined docker-init.sh to enable docker-in-docker
23 | "overrideCommand": false,
24 | "remoteUser": "codespace",
25 | "runArgs": [
26 | // Enable ptrace-based debugging for Go in container
27 | "--cap-add=SYS_PTRACE",
28 | "--security-opt",
29 | "seccomp=unconfined",
30 |
31 | // Enable docker-in-docker configuration
32 | "--init",
33 | "--privileged"
34 | ]
35 | }
36 |
--------------------------------------------------------------------------------
/quickstarts/durable-functions/dotnet/HelloCities/.devcontainer/first-run-notice.txt:
--------------------------------------------------------------------------------
1 | 👋 Welcome to the Functions Codespace! You are on the Functions Quickstarts image.
2 | It includes everything needed to run through our tutorials and quickstart applications.
3 |
4 | 📚 Functions docs can be found at: https://learn.microsoft.com/en-us/azure/azure-functions/
5 |
--------------------------------------------------------------------------------
/quickstarts/durable-functions/dotnet/HelloCities/.github/CODE_OF_CONDUCT.md:
--------------------------------------------------------------------------------
1 | # Microsoft Open Source Code of Conduct
2 |
3 | This project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/).
4 |
5 | Resources:
6 |
7 | - [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/)
8 | - [Microsoft Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/)
9 | - Contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with questions or concerns
10 |
--------------------------------------------------------------------------------
/quickstarts/durable-functions/dotnet/HelloCities/.github/ISSUE_TEMPLATE.md:
--------------------------------------------------------------------------------
1 |
4 | > Please provide us with the following information:
5 | > ---------------------------------------------------------------
6 |
7 | ### This issue is for a: (mark with an `x`)
8 | ```
9 | - [ ] bug report -> please search issues before submitting
10 | - [ ] feature request
11 | - [ ] documentation issue or request
12 | - [ ] regression (a behavior that used to work and stopped in a new release)
13 | ```
14 |
15 | ### Minimal steps to reproduce
16 | >
17 |
18 | ### Any log messages given by the failure
19 | >
20 |
21 | ### Expected/desired behavior
22 | >
23 |
24 | ### OS and Version?
25 | > Windows 7, 8 or 10. Linux (which distribution). macOS (Yosemite? El Capitan? Sierra?)
26 |
27 | ### Versions
28 | >
29 |
30 | ### Mention any other details that might be useful
31 |
32 | > ---------------------------------------------------------------
33 | > Thanks! We'll be in touch soon.
34 |
--------------------------------------------------------------------------------
/quickstarts/durable-functions/dotnet/HelloCities/.github/PULL_REQUEST_TEMPLATE.md:
--------------------------------------------------------------------------------
1 | ## Purpose
2 |
3 | * ...
4 |
5 | ## Does this introduce a breaking change?
6 |
7 | ```
8 | [ ] Yes
9 | [ ] No
10 | ```
11 |
12 | ## Pull Request Type
13 | What kind of change does this Pull Request introduce?
14 |
15 |
16 | ```
17 | [ ] Bugfix
18 | [ ] Feature
19 | [ ] Code style update (formatting, local variables)
20 | [ ] Refactoring (no functional changes, no api changes)
21 | [ ] Documentation content changes
22 | [ ] Other... Please describe:
23 | ```
24 |
25 | ## How to Test
26 | * Get the code
27 |
28 | ```
29 | git clone [repo-address]
30 | cd [repo-name]
31 | git checkout [branch-name]
32 | npm install
33 | ```
34 |
35 | * Test the code
36 |
37 | ```
38 | ```
39 |
40 | ## What to Check
41 | Verify that the following are valid
42 | * ...
43 |
44 | ## Other Information
45 |
--------------------------------------------------------------------------------
/quickstarts/durable-functions/dotnet/HelloCities/.vscode/extensions.json:
--------------------------------------------------------------------------------
1 | {
2 | "recommendations": [
3 | "ms-azuretools.vscode-azurefunctions",
4 | "ms-dotnettools.csharp"
5 | ]
6 | }
--------------------------------------------------------------------------------
/quickstarts/durable-functions/dotnet/HelloCities/.vscode/launch.json:
--------------------------------------------------------------------------------
1 | {
2 | "version": "0.2.0",
3 | "configurations": [
4 | {
5 | "name": "Attach to .NET Functions",
6 | "type": "coreclr",
7 | "request": "attach",
8 | "processId": "${command:azureFunctions.pickProcess}"
9 | }
10 | ]
11 | }
--------------------------------------------------------------------------------
/quickstarts/durable-functions/dotnet/HelloCities/.vscode/settings.json:
--------------------------------------------------------------------------------
1 | {
2 | "azureFunctions.deploySubpath": "http/bin/Release/net8.0/publish",
3 | "azureFunctions.projectLanguage": "C#",
4 | "azureFunctions.projectRuntime": "~4",
5 | "debug.internalConsoleOptions": "neverOpen",
6 | "azureFunctions.preDeployTask": "publish (functions)"
7 | }
--------------------------------------------------------------------------------
/quickstarts/durable-functions/dotnet/HelloCities/azure.yaml:
--------------------------------------------------------------------------------
1 | # yaml-language-server: $schema=https://raw.githubusercontent.com/Azure/azure-dev/main/schemas/v1.0/azure.yaml.json
2 |
3 | name: functions-quickstart-dotnet-azd-sfi-wave1-premium
4 | metadata:
5 | template: functions-quickstart-dotnet-azd-sfi-wave1-premium@1.0.0
6 | services:
7 | durable-function:
8 | project: ./http/
9 | language: dotnet
10 | host: function
11 | hooks:
12 | postprovision:
13 | windows:
14 | shell: pwsh
15 | run: ./scripts/deploy.ps1
16 | interactive: true
17 | continueOnError: false
18 | posix:
19 | shell: sh
20 | run: ./scripts/deploy.sh
21 | interactive: true
22 | continueOnError: false
23 |
--------------------------------------------------------------------------------
/quickstarts/durable-functions/dotnet/HelloCities/http/Program.cs:
--------------------------------------------------------------------------------
1 | using Microsoft.Azure.Functions.Worker;
2 | using Microsoft.Extensions.Hosting;
3 | using Microsoft.Extensions.DependencyInjection;
4 |
5 | var host = new HostBuilder()
6 | .ConfigureFunctionsWebApplication()
7 | .ConfigureServices(services => {
8 | services.AddApplicationInsightsTelemetryWorkerService();
9 | services.ConfigureFunctionsApplicationInsights();
10 | })
11 | .Build();
12 |
13 | host.Run();
14 |
--------------------------------------------------------------------------------
/quickstarts/durable-functions/dotnet/HelloCities/http/Properties/launchSettings.json:
--------------------------------------------------------------------------------
1 | {
2 | "profiles": {
3 | "hello_cities": {
4 | "commandName": "Project",
5 | "commandLineArgs": "--port 7092",
6 | "launchBrowser": false,
7 | }
8 | }
9 | }
--------------------------------------------------------------------------------
/quickstarts/durable-functions/dotnet/HelloCities/http/host.json:
--------------------------------------------------------------------------------
1 | {
2 | "version": "2.0",
3 | "logging": {
4 | "applicationInsights": {
5 | "samplingSettings": {
6 | "isEnabled": true,
7 | "excludedTypes": "Request"
8 | },
9 | "enableLiveMetricsFilters": true
10 | },
11 | "logLevel": {
12 | "DurableTask.AzureManagedBackend": "Information"
13 | }
14 | },
15 | "extensions": {
16 | "durableTask": {
17 | "storageProvider": {
18 | "type": "azureManaged",
19 | "connectionStringName": "DURABLE_TASK_SERVICE_CONNECTION_STRING"
20 | },
21 | "hubName": "%TASKHUB_NAME%"
22 | }
23 | }
24 | }
--------------------------------------------------------------------------------
/quickstarts/durable-functions/dotnet/HelloCities/infra/app/dts-Access.bicep:
--------------------------------------------------------------------------------
1 | param principalID string
2 | param roleDefinitionID string
3 | param dtsName string
4 | param principalType string
5 |
6 | resource dts 'Microsoft.DurableTask/schedulers@2024-10-01-preview' existing = {
7 | name: dtsName
8 | }
9 |
10 | resource dtsRoleAssignment 'Microsoft.Authorization/roleAssignments@2020-04-01-preview' = {
11 | name: guid(dts.id, principalID, roleDefinitionID )
12 | scope: dts
13 | properties: {
14 | roleDefinitionId: resourceId('Microsoft.Authorization/roleDefinitions', roleDefinitionID )
15 | principalId: principalID
16 | principalType: principalType
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/quickstarts/durable-functions/dotnet/HelloCities/infra/app/dts.bicep:
--------------------------------------------------------------------------------
1 | param ipAllowlist array
2 | param location string
3 | param tags object = {}
4 | param name string
5 | param taskhubname string
6 | param skuName string
7 | param skuCapacity int
8 |
9 | resource dts 'Microsoft.DurableTask/schedulers@2024-10-01-preview' = {
10 | location: location
11 | tags: tags
12 | name: name
13 | properties: {
14 | ipAllowlist: ipAllowlist
15 | sku: {
16 | name: skuName
17 | capacity: skuCapacity
18 | }
19 | }
20 | }
21 |
22 | resource taskhub 'Microsoft.DurableTask/schedulers/taskhubs@2024-10-01-preview' = {
23 | parent: dts
24 | name: taskhubname
25 | }
26 |
27 | output dts_NAME string = dts.name
28 | output dts_URL string = dts.properties.endpoint
29 | output TASKHUB_NAME string = taskhub.name
30 |
--------------------------------------------------------------------------------
/quickstarts/durable-functions/dotnet/HelloCities/infra/app/storage-Access.bicep:
--------------------------------------------------------------------------------
1 | param principalID string
2 | param roleDefinitionID string
3 | param storageAccountName string
4 | param principalType string = 'ServicePrincipal' // Workaround for https://learn.microsoft.com/en-us/azure/role-based-access-control/role-assignments-template#new-service-principal
5 |
6 | resource storageAccount 'Microsoft.Storage/storageAccounts@2021-09-01' existing = {
7 | name: storageAccountName
8 | }
9 |
10 | // Allow access from API to storage account using a managed identity and least priv Storage roles
11 | resource storageRoleAssignment 'Microsoft.Authorization/roleAssignments@2020-04-01-preview' = {
12 | name: guid(storageAccount.id, principalID, roleDefinitionID)
13 | scope: storageAccount
14 | properties: {
15 | roleDefinitionId: resourceId('Microsoft.Authorization/roleDefinitions', roleDefinitionID)
16 | principalId: principalID
17 | principalType: principalType
18 | }
19 | }
20 |
21 | output ROLE_ASSIGNMENT_NAME string = storageRoleAssignment.name
22 |
--------------------------------------------------------------------------------
/quickstarts/durable-functions/dotnet/HelloCities/infra/core/host/appservice-appsettings.bicep:
--------------------------------------------------------------------------------
1 | metadata description = 'Updates app settings for an Azure App Service.'
2 | @description('The name of the app service resource within the current resource group scope')
3 | param name string
4 |
5 | @description('The app settings to be applied to the app service')
6 | @secure()
7 | param appSettings object
8 |
9 | resource appService 'Microsoft.Web/sites@2022-03-01' existing = {
10 | name: name
11 | }
12 |
13 | resource settings 'Microsoft.Web/sites/config@2022-03-01' = {
14 | name: 'appsettings'
15 | parent: appService
16 | properties: appSettings
17 | }
18 |
--------------------------------------------------------------------------------
/quickstarts/durable-functions/dotnet/HelloCities/infra/core/host/appserviceplan.bicep:
--------------------------------------------------------------------------------
1 | metadata description = 'Creates an Azure App Service plan.'
2 | param name string
3 | param location string = resourceGroup().location
4 | param tags object = {}
5 |
6 | param kind string = ''
7 | param reserved bool = true
8 | param sku object
9 |
10 | resource appServicePlan 'Microsoft.Web/serverfarms@2022-03-01' = {
11 | name: name
12 | location: location
13 | tags: tags
14 | sku: sku
15 | kind: kind
16 | properties: {
17 | reserved: reserved
18 | }
19 | }
20 |
21 | output id string = appServicePlan.id
22 | output name string = appServicePlan.name
23 |
--------------------------------------------------------------------------------
/quickstarts/durable-functions/dotnet/HelloCities/infra/core/identity/userAssignedIdentity.bicep:
--------------------------------------------------------------------------------
1 | param identityName string
2 | param location string
3 | param tags object = {}
4 |
5 | resource userAssignedIdentity 'Microsoft.ManagedIdentity/userAssignedIdentities@2023-07-31-preview' = {
6 | name: identityName
7 | location: location
8 | tags: tags
9 | }
10 |
11 | output identityId string = userAssignedIdentity.id
12 | output identityName string = userAssignedIdentity.name
13 | output identityPrincipalId string = userAssignedIdentity.properties.principalId
14 | output identityClientId string = userAssignedIdentity.properties.clientId
15 |
--------------------------------------------------------------------------------
/quickstarts/durable-functions/dotnet/HelloCities/infra/core/monitor/appinsights-access.bicep:
--------------------------------------------------------------------------------
1 | param principalID string
2 | param roleDefinitionID string
3 | param appInsightsName string
4 |
5 | resource applicationInsights 'Microsoft.Insights/components@2020-02-02' existing = {
6 | name: appInsightsName
7 | }
8 |
9 | // Allow access from API to app insights using a managed identity and least priv role
10 | resource appInsightsRoleAssignment 'Microsoft.Authorization/roleAssignments@2020-04-01-preview' = {
11 | name: guid(applicationInsights.id, principalID, roleDefinitionID)
12 | scope: applicationInsights
13 | properties: {
14 | roleDefinitionId: resourceId('Microsoft.Authorization/roleDefinitions', roleDefinitionID)
15 | principalId: principalID
16 | principalType: 'ServicePrincipal' // Workaround for https://learn.microsoft.com/en-us/azure/role-based-access-control/role-assignments-template#new-service-principal
17 | }
18 | }
19 |
20 | output ROLE_ASSIGNMENT_NAME string = appInsightsRoleAssignment.name
21 |
22 |
--------------------------------------------------------------------------------
/quickstarts/durable-functions/dotnet/HelloCities/infra/core/monitor/applicationinsights.bicep:
--------------------------------------------------------------------------------
1 | param name string
2 | param location string = resourceGroup().location
3 | param tags object = {}
4 |
5 | param logAnalyticsWorkspaceId string
6 | param disableLocalAuth bool = false
7 |
8 | resource applicationInsights 'Microsoft.Insights/components@2020-02-02' = {
9 | name: name
10 | location: location
11 | tags: tags
12 | kind: 'web'
13 | properties: {
14 | Application_Type: 'web'
15 | WorkspaceResourceId: logAnalyticsWorkspaceId
16 | DisableLocalAuth: disableLocalAuth
17 | }
18 | }
19 |
20 | output connectionString string = applicationInsights.properties.ConnectionString
21 | output instrumentationKey string = applicationInsights.properties.InstrumentationKey
22 | output name string = applicationInsights.name
23 |
--------------------------------------------------------------------------------
/quickstarts/durable-functions/dotnet/HelloCities/infra/core/monitor/loganalytics.bicep:
--------------------------------------------------------------------------------
1 | param name string
2 | param location string = resourceGroup().location
3 | param tags object = {}
4 |
5 | resource logAnalytics 'Microsoft.OperationalInsights/workspaces@2021-12-01-preview' = {
6 | name: name
7 | location: location
8 | tags: tags
9 | properties: any({
10 | retentionInDays: 30
11 | features: {
12 | searchVersion: 1
13 | }
14 | sku: {
15 | name: 'PerGB2018'
16 | }
17 | })
18 | }
19 |
20 | output id string = logAnalytics.id
21 | output name string = logAnalytics.name
22 |
--------------------------------------------------------------------------------
/quickstarts/durable-functions/dotnet/HelloCities/infra/core/monitor/monitoring.bicep:
--------------------------------------------------------------------------------
1 | param logAnalyticsName string
2 | param applicationInsightsName string
3 | param location string = resourceGroup().location
4 | param tags object = {}
5 | param disableLocalAuth bool = false
6 |
7 | module logAnalytics 'loganalytics.bicep' = {
8 | name: 'loganalytics'
9 | params: {
10 | name: logAnalyticsName
11 | location: location
12 | tags: tags
13 | }
14 | }
15 |
16 | module applicationInsights 'applicationinsights.bicep' = {
17 | name: 'applicationinsights'
18 | params: {
19 | name: applicationInsightsName
20 | location: location
21 | tags: tags
22 | logAnalyticsWorkspaceId: logAnalytics.outputs.id
23 | disableLocalAuth: disableLocalAuth
24 | }
25 | }
26 |
27 | output applicationInsightsConnectionString string = applicationInsights.outputs.connectionString
28 | output applicationInsightsInstrumentationKey string = applicationInsights.outputs.instrumentationKey
29 | output applicationInsightsName string = applicationInsights.outputs.name
30 | output logAnalyticsWorkspaceId string = logAnalytics.outputs.id
31 | output logAnalyticsWorkspaceName string = logAnalytics.outputs.name
32 |
--------------------------------------------------------------------------------
/quickstarts/durable-functions/dotnet/HelloCities/infra/core/security/role.bicep:
--------------------------------------------------------------------------------
1 | metadata description = 'Creates a role assignment for a service principal.'
2 | param principalId string
3 |
4 | @allowed([
5 | 'Device'
6 | 'ForeignGroup'
7 | 'Group'
8 | 'ServicePrincipal'
9 | 'User'
10 | ])
11 | param principalType string = 'ServicePrincipal'
12 | param roleDefinitionId string
13 |
14 | resource role 'Microsoft.Authorization/roleAssignments@2022-04-01' = {
15 | name: guid(subscription().id, resourceGroup().id, principalId, roleDefinitionId)
16 | properties: {
17 | principalId: principalId
18 | principalType: principalType
19 | roleDefinitionId: resourceId('Microsoft.Authorization/roleDefinitions', roleDefinitionId)
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/samples/dtfx/HelloWorld/HelloWorld.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Exe
5 | net8.0
6 | enable
7 | enable
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/samples/dtfx/HelloWorld/HelloWorld.sln:
--------------------------------------------------------------------------------
1 |
2 | Microsoft Visual Studio Solution File, Format Version 12.00
3 | # Visual Studio Version 17
4 | VisualStudioVersion = 17.11.35327.3
5 | MinimumVisualStudioVersion = 10.0.40219.1
6 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HelloWorld", "HelloWorld.csproj", "{6836DA0A-484B-41EB-A82F-5F89E7039462}"
7 | EndProject
8 | Global
9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution
10 | Debug|Any CPU = Debug|Any CPU
11 | Release|Any CPU = Release|Any CPU
12 | EndGlobalSection
13 | GlobalSection(ProjectConfigurationPlatforms) = postSolution
14 | {6836DA0A-484B-41EB-A82F-5F89E7039462}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
15 | {6836DA0A-484B-41EB-A82F-5F89E7039462}.Debug|Any CPU.Build.0 = Debug|Any CPU
16 | {6836DA0A-484B-41EB-A82F-5F89E7039462}.Release|Any CPU.ActiveCfg = Release|Any CPU
17 | {6836DA0A-484B-41EB-A82F-5F89E7039462}.Release|Any CPU.Build.0 = Release|Any CPU
18 | EndGlobalSection
19 | GlobalSection(SolutionProperties) = preSolution
20 | HideSolutionNode = FALSE
21 | EndGlobalSection
22 | GlobalSection(ExtensibilityGlobals) = postSolution
23 | SolutionGuid = {AA5A94A4-EBD1-4D7B-8752-EC501F6EB1E0}
24 | EndGlobalSection
25 | EndGlobal
26 |
--------------------------------------------------------------------------------
/samples/durable-functions/dotnet/OrderProcessor/ Models.cs:
--------------------------------------------------------------------------------
1 | namespace Company.Function.Models
2 | {
3 | public record OrderPayload(string Name, double TotalCost, int Quantity = 1);
4 | public record InventoryRequest(string RequestId, string ItemName, int Quantity);
5 | public record InventoryResult(bool Success, OrderPayload orderPayload);
6 | public record PaymentRequest(string RequestId, string ItemBeingPurchased, int Amount, double Cost);
7 | public record OrderResult(bool Processed);
8 | public record InventoryItem(string Name, double TotalCost, int Quantity);
9 | public record Notification(string Message);
10 | }
--------------------------------------------------------------------------------
/samples/durable-functions/dotnet/OrderProcessor/.vscode/extensions.json:
--------------------------------------------------------------------------------
1 | {
2 | "recommendations": [
3 | "ms-azuretools.vscode-azurefunctions",
4 | "ms-dotnettools.csharp"
5 | ]
6 | }
--------------------------------------------------------------------------------
/samples/durable-functions/dotnet/OrderProcessor/.vscode/launch.json:
--------------------------------------------------------------------------------
1 | {
2 | "version": "0.2.0",
3 | "configurations": [
4 | {
5 | "name": "Attach to .NET Functions",
6 | "type": "coreclr",
7 | "request": "attach",
8 | "processId": "${command:azureFunctions.pickProcess}"
9 | }
10 | ]
11 | }
--------------------------------------------------------------------------------
/samples/durable-functions/dotnet/OrderProcessor/.vscode/settings.json:
--------------------------------------------------------------------------------
1 | {
2 | "azureFunctions.deploySubpath": "bin/Release/net8.0/publish",
3 | "azureFunctions.projectLanguage": "C#",
4 | "azureFunctions.projectRuntime": "~4",
5 | "debug.internalConsoleOptions": "neverOpen",
6 | "azureFunctions.preDeployTask": "publish (functions)"
7 | }
--------------------------------------------------------------------------------
/samples/durable-functions/dotnet/OrderProcessor/Activities/NotifyCustomer.cs:
--------------------------------------------------------------------------------
1 | using Microsoft.Azure.Functions.Worker;
2 | using Microsoft.Extensions.Logging;
3 | using Company.Function.Models;
4 |
5 | namespace Company.Function.Activities
6 | {
7 | public static class NotifyCustomer{
8 | [Function(nameof(NotifyCustomer))]
9 | public static async Task