diff --git a/Aspire.slnx b/Aspire.slnx
index df9a7ed337f..dac97a2e18a 100644
--- a/Aspire.slnx
+++ b/Aspire.slnx
@@ -22,6 +22,7 @@
+
@@ -147,6 +148,10 @@
+
+
+
+
@@ -436,6 +441,7 @@
+
diff --git a/Directory.Packages.props b/Directory.Packages.props
index a3b5f9ab58b..2fc9e58c37e 100644
--- a/Directory.Packages.props
+++ b/Directory.Packages.props
@@ -177,6 +177,9 @@
+
+
+
diff --git a/playground/AzureFunctionsWithDts/AzureFunctionsWithDts.AppHost/Program.cs b/playground/AzureFunctionsWithDts/AzureFunctionsWithDts.AppHost/Program.cs
index ff0e39fb7be..88c42816783 100644
--- a/playground/AzureFunctionsWithDts/AzureFunctionsWithDts.AppHost/Program.cs
+++ b/playground/AzureFunctionsWithDts/AzureFunctionsWithDts.AppHost/Program.cs
@@ -8,6 +8,7 @@
builder.AddAzureFunctionsProject("funcapp")
.WithHostStorage(storage)
- .WithReference(taskHub);
+ .WithReference(taskHub)
+ .WaitFor(taskHub);
builder.Build().Run();
diff --git a/playground/DurableTaskWorkerWithDts/DurableTaskWorkerWithDts.AppHost/DurableTaskWorkerWithDts.AppHost.csproj b/playground/DurableTaskWorkerWithDts/DurableTaskWorkerWithDts.AppHost/DurableTaskWorkerWithDts.AppHost.csproj
new file mode 100644
index 00000000000..7d48527c7eb
--- /dev/null
+++ b/playground/DurableTaskWorkerWithDts/DurableTaskWorkerWithDts.AppHost/DurableTaskWorkerWithDts.AppHost.csproj
@@ -0,0 +1,20 @@
+
+
+
+ Exe
+ $(DefaultTargetFramework)
+ enable
+ enable
+ true
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/playground/DurableTaskWorkerWithDts/DurableTaskWorkerWithDts.AppHost/Program.cs b/playground/DurableTaskWorkerWithDts/DurableTaskWorkerWithDts.AppHost/Program.cs
new file mode 100644
index 00000000000..1305dbcb6b1
--- /dev/null
+++ b/playground/DurableTaskWorkerWithDts/DurableTaskWorkerWithDts.AppHost/Program.cs
@@ -0,0 +1,12 @@
+var builder = DistributedApplication.CreateBuilder(args);
+
+var scheduler = builder.AddDurableTaskScheduler("scheduler")
+ .RunAsEmulator();
+
+var taskHub = scheduler.AddTaskHub("taskhub");
+
+builder.AddProject("worker")
+ .WithReference(taskHub)
+ .WaitFor(taskHub);
+
+builder.Build().Run();
diff --git a/playground/DurableTaskWorkerWithDts/DurableTaskWorkerWithDts.AppHost/Properties/launchSettings.json b/playground/DurableTaskWorkerWithDts/DurableTaskWorkerWithDts.AppHost/Properties/launchSettings.json
new file mode 100644
index 00000000000..05d4ad302dd
--- /dev/null
+++ b/playground/DurableTaskWorkerWithDts/DurableTaskWorkerWithDts.AppHost/Properties/launchSettings.json
@@ -0,0 +1,41 @@
+{
+ "$schema": "https://json.schemastore.org/launchsettings.json",
+ "profiles": {
+ "https": {
+ "commandName": "Project",
+ "dotnetRunMessages": true,
+ "launchBrowser": true,
+ "applicationUrl": "https://localhost:17245;http://localhost:15055",
+ "environmentVariables": {
+ "ASPNETCORE_ENVIRONMENT": "Development",
+ "DOTNET_ENVIRONMENT": "Development",
+ "ASPIRE_DASHBOARD_OTLP_ENDPOINT_URL": "https://localhost:21004",
+ "ASPIRE_RESOURCE_SERVICE_ENDPOINT_URL": "https://localhost:22111"
+ }
+ },
+ "http": {
+ "commandName": "Project",
+ "dotnetRunMessages": true,
+ "launchBrowser": true,
+ "applicationUrl": "http://localhost:15055",
+ "environmentVariables": {
+ "ASPNETCORE_ENVIRONMENT": "Development",
+ "DOTNET_ENVIRONMENT": "Development",
+ "ASPIRE_DASHBOARD_OTLP_ENDPOINT_URL": "http://localhost:19011",
+ "ASPIRE_RESOURCE_SERVICE_ENDPOINT_URL": "http://localhost:20126"
+ }
+ },
+ "generate-manifest": {
+ "commandName": "Project",
+ "launchBrowser": true,
+ "dotnetRunMessages": true,
+ "commandLineArgs": "--publisher manifest --output-path aspire-manifest.json",
+ "applicationUrl": "http://localhost:15889",
+ "environmentVariables": {
+ "ASPNETCORE_ENVIRONMENT": "Development",
+ "DOTNET_ENVIRONMENT": "Development",
+ "ASPIRE_DASHBOARD_OTLP_ENDPOINT_URL": "http://localhost:16176"
+ }
+ }
+ }
+}
diff --git a/playground/DurableTaskWorkerWithDts/DurableTaskWorkerWithDts.Worker/ChainingOrchestrator.cs b/playground/DurableTaskWorkerWithDts/DurableTaskWorkerWithDts.Worker/ChainingOrchestrator.cs
new file mode 100644
index 00000000000..f2ff638a820
--- /dev/null
+++ b/playground/DurableTaskWorkerWithDts/DurableTaskWorkerWithDts.Worker/ChainingOrchestrator.cs
@@ -0,0 +1,20 @@
+using Microsoft.DurableTask;
+
+public class ChainingOrchestrator : TaskOrchestrator