From 774b5cc129d0bdabe6c5e0a69fb94d56ae4d3100 Mon Sep 17 00:00:00 2001 From: Sebastian Burckhardt Date: Tue, 23 Dec 2025 13:53:24 -0800 Subject: [PATCH 1/2] add tags to SubOrchestrationInstanceCreatedEvent. --- .../History/SubOrchestrationInstanceCreatedEvent.cs | 8 ++++++++ src/DurableTask.Core/OrchestrationRuntimeState.cs | 1 + src/DurableTask.Core/TaskOrchestrationDispatcher.cs | 7 +++++-- 3 files changed, 14 insertions(+), 2 deletions(-) diff --git a/src/DurableTask.Core/History/SubOrchestrationInstanceCreatedEvent.cs b/src/DurableTask.Core/History/SubOrchestrationInstanceCreatedEvent.cs index 646070933..1931d2d8d 100644 --- a/src/DurableTask.Core/History/SubOrchestrationInstanceCreatedEvent.cs +++ b/src/DurableTask.Core/History/SubOrchestrationInstanceCreatedEvent.cs @@ -13,6 +13,7 @@ namespace DurableTask.Core.History { + using System.Collections.Generic; using System.Runtime.Serialization; /// @@ -47,6 +48,7 @@ internal SubOrchestrationInstanceCreatedEvent(SubOrchestrationInstanceCreatedEve InstanceId = other.InstanceId; Input = other.Input; ClientSpanId = other.ClientSpanId; + Tags = other.Tags; } /// @@ -83,5 +85,11 @@ internal SubOrchestrationInstanceCreatedEvent(SubOrchestrationInstanceCreatedEve /// [DataMember] public string ClientSpanId { get; set; } + + /// + /// Gets or sets a dictionary of tags of string, string + /// + [DataMember] + public IDictionary Tags { get; set; } } } \ No newline at end of file diff --git a/src/DurableTask.Core/OrchestrationRuntimeState.cs b/src/DurableTask.Core/OrchestrationRuntimeState.cs index 3c10fe693..ab7d76044 100644 --- a/src/DurableTask.Core/OrchestrationRuntimeState.cs +++ b/src/DurableTask.Core/OrchestrationRuntimeState.cs @@ -389,6 +389,7 @@ HistoryEvent GenerateAbridgedEvent(HistoryEvent evt) Version = subOrchestrationInstanceCreatedEvent.Version, Input = "[..snipped..]", ClientSpanId = subOrchestrationInstanceCreatedEvent.ClientSpanId, + Tags = subOrchestrationInstanceCreatedEvent.Tags, }; } else if (evt is SubOrchestrationInstanceCompletedEvent subOrchestrationInstanceCompletedEvent) diff --git a/src/DurableTask.Core/TaskOrchestrationDispatcher.cs b/src/DurableTask.Core/TaskOrchestrationDispatcher.cs index b81cbae50..b827982c8 100644 --- a/src/DurableTask.Core/TaskOrchestrationDispatcher.cs +++ b/src/DurableTask.Core/TaskOrchestrationDispatcher.cs @@ -1221,11 +1221,14 @@ TaskMessage ProcessCreateSubOrchestrationInstanceDecision( bool includeParameters, Activity? parentTraceActivity) { + IDictionary mergedTags = OrchestrationTags.MergeTags(createSubOrchestrationAction.Tags, runtimeState.Tags); + var historyEvent = new SubOrchestrationInstanceCreatedEvent(createSubOrchestrationAction.Id) { Name = createSubOrchestrationAction.Name, Version = createSubOrchestrationAction.Version, InstanceId = createSubOrchestrationAction.InstanceId, + Tags = mergedTags, }; if (includeParameters) { @@ -1238,7 +1241,6 @@ TaskMessage ProcessCreateSubOrchestrationInstanceDecision( var startedEvent = new ExecutionStartedEvent(-1, createSubOrchestrationAction.Input) { - Tags = OrchestrationTags.MergeTags(createSubOrchestrationAction.Tags, runtimeState.Tags), OrchestrationInstance = new OrchestrationInstance { InstanceId = createSubOrchestrationAction.InstanceId, @@ -1252,7 +1254,8 @@ TaskMessage ProcessCreateSubOrchestrationInstanceDecision( TaskScheduleId = createSubOrchestrationAction.Id }, Name = createSubOrchestrationAction.Name, - Version = createSubOrchestrationAction.Version + Version = createSubOrchestrationAction.Version, + Tags = mergedTags, }; // If a parent trace context was provided via the CreateSubOrchestrationAction.Tags, we will use this as the parent trace context of the suborchestration execution Activity rather than Activity.Current.Context. From 5d7114517f0a1f1eb000f3b386bed3638335913f Mon Sep 17 00:00:00 2001 From: Sebastian Burckhardt Date: Tue, 23 Dec 2025 15:22:33 -0800 Subject: [PATCH 2/2] fix whitespace --- src/DurableTask.Core/TaskOrchestrationDispatcher.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/DurableTask.Core/TaskOrchestrationDispatcher.cs b/src/DurableTask.Core/TaskOrchestrationDispatcher.cs index b827982c8..ad0d43230 100644 --- a/src/DurableTask.Core/TaskOrchestrationDispatcher.cs +++ b/src/DurableTask.Core/TaskOrchestrationDispatcher.cs @@ -1221,7 +1221,7 @@ TaskMessage ProcessCreateSubOrchestrationInstanceDecision( bool includeParameters, Activity? parentTraceActivity) { - IDictionary mergedTags = OrchestrationTags.MergeTags(createSubOrchestrationAction.Tags, runtimeState.Tags); + IDictionary mergedTags = OrchestrationTags.MergeTags(createSubOrchestrationAction.Tags, runtimeState.Tags); var historyEvent = new SubOrchestrationInstanceCreatedEvent(createSubOrchestrationAction.Id) {