Skip to content

Commit 5141c2c

Browse files
authored
Update core and update version to 1.3.1 (#344)
1 parent 73eaf2b commit 5141c2c

File tree

4 files changed

+208
-153
lines changed

4 files changed

+208
-153
lines changed

Directory.Build.props

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
</PropertyGroup>
1818

1919
<PropertyGroup>
20-
<Version>1.3.0</Version>
20+
<Version>1.3.1</Version>
2121
<!--
2222
.NET does not allow the above version format for AssemblyVersion, and this
2323
is the version used in gRPC headers. The format is
@@ -32,7 +32,7 @@
3232
and 0.2.0 then is 0.2.0.5. But if there is no prerelease version, just
3333
leave revision off.
3434
-->
35-
<AssemblyVersion>1.3.0</AssemblyVersion>
35+
<AssemblyVersion>1.3.1</AssemblyVersion>
3636
</PropertyGroup>
3737

3838
<ItemGroup>

src/Temporalio/Bridge/Api/WorkflowActivation/WorkflowActivation.cs

Lines changed: 120 additions & 63 deletions
Original file line numberDiff line numberDiff line change
@@ -96,69 +96,70 @@ static WorkflowActivationReflection() {
9696
"ZRgXIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAaTwoMSGVhZGVy",
9797
"c0VudHJ5EgsKA2tleRgBIAEoCRIuCgV2YWx1ZRgCIAEoCzIfLnRlbXBvcmFs",
9898
"LmFwaS5jb21tb24udjEuUGF5bG9hZDoCOAEiGAoJRmlyZVRpbWVyEgsKA3Nl",
99-
"cRgBIAEoDSJbCg9SZXNvbHZlQWN0aXZpdHkSCwoDc2VxGAEgASgNEjsKBnJl",
99+
"cRgBIAEoDSJtCg9SZXNvbHZlQWN0aXZpdHkSCwoDc2VxGAEgASgNEjsKBnJl",
100100
"c3VsdBgCIAEoCzIrLmNvcmVzZGsuYWN0aXZpdHlfcmVzdWx0LkFjdGl2aXR5",
101-
"UmVzb2x1dGlvbiLRAgoiUmVzb2x2ZUNoaWxkV29ya2Zsb3dFeGVjdXRpb25T",
102-
"dGFydBILCgNzZXEYASABKA0SWwoJc3VjY2VlZGVkGAIgASgLMkYuY29yZXNk",
103-
"ay53b3JrZmxvd19hY3RpdmF0aW9uLlJlc29sdmVDaGlsZFdvcmtmbG93RXhl",
104-
"Y3V0aW9uU3RhcnRTdWNjZXNzSAASWAoGZmFpbGVkGAMgASgLMkYuY29yZXNk",
105-
"ay53b3JrZmxvd19hY3RpdmF0aW9uLlJlc29sdmVDaGlsZFdvcmtmbG93RXhl",
106-
"Y3V0aW9uU3RhcnRGYWlsdXJlSAASXQoJY2FuY2VsbGVkGAQgASgLMkguY29y",
107-
"ZXNkay53b3JrZmxvd19hY3RpdmF0aW9uLlJlc29sdmVDaGlsZFdvcmtmbG93",
108-
"RXhlY3V0aW9uU3RhcnRDYW5jZWxsZWRIAEIICgZzdGF0dXMiOwopUmVzb2x2",
109-
"ZUNoaWxkV29ya2Zsb3dFeGVjdXRpb25TdGFydFN1Y2Nlc3MSDgoGcnVuX2lk",
110-
"GAEgASgJIqYBCilSZXNvbHZlQ2hpbGRXb3JrZmxvd0V4ZWN1dGlvblN0YXJ0",
111-
"RmFpbHVyZRITCgt3b3JrZmxvd19pZBgBIAEoCRIVCg13b3JrZmxvd190eXBl",
112-
"GAIgASgJEk0KBWNhdXNlGAMgASgOMj4uY29yZXNkay5jaGlsZF93b3JrZmxv",
113-
"dy5TdGFydENoaWxkV29ya2Zsb3dFeGVjdXRpb25GYWlsZWRDYXVzZSJgCitS",
114-
"ZXNvbHZlQ2hpbGRXb3JrZmxvd0V4ZWN1dGlvblN0YXJ0Q2FuY2VsbGVkEjEK",
115-
"B2ZhaWx1cmUYASABKAsyIC50ZW1wb3JhbC5hcGkuZmFpbHVyZS52MS5GYWls",
116-
"dXJlImkKHVJlc29sdmVDaGlsZFdvcmtmbG93RXhlY3V0aW9uEgsKA3NlcRgB",
117-
"IAEoDRI7CgZyZXN1bHQYAiABKAsyKy5jb3Jlc2RrLmNoaWxkX3dvcmtmbG93",
118-
"LkNoaWxkV29ya2Zsb3dSZXN1bHQiKwoQVXBkYXRlUmFuZG9tU2VlZBIXCg9y",
119-
"YW5kb21uZXNzX3NlZWQYASABKAQihAIKDVF1ZXJ5V29ya2Zsb3cSEAoIcXVl",
120-
"cnlfaWQYASABKAkSEgoKcXVlcnlfdHlwZRgCIAEoCRIyCglhcmd1bWVudHMY",
121-
"AyADKAsyHy50ZW1wb3JhbC5hcGkuY29tbW9uLnYxLlBheWxvYWQSSAoHaGVh",
122-
"ZGVycxgFIAMoCzI3LmNvcmVzZGsud29ya2Zsb3dfYWN0aXZhdGlvbi5RdWVy",
123-
"eVdvcmtmbG93LkhlYWRlcnNFbnRyeRpPCgxIZWFkZXJzRW50cnkSCwoDa2V5",
124-
"GAEgASgJEi4KBXZhbHVlGAIgASgLMh8udGVtcG9yYWwuYXBpLmNvbW1vbi52",
125-
"MS5QYXlsb2FkOgI4ASJCCg5DYW5jZWxXb3JrZmxvdxIwCgdkZXRhaWxzGAEg",
126-
"AygLMh8udGVtcG9yYWwuYXBpLmNvbW1vbi52MS5QYXlsb2FkIoMCCg5TaWdu",
127-
"YWxXb3JrZmxvdxITCgtzaWduYWxfbmFtZRgBIAEoCRIuCgVpbnB1dBgCIAMo",
128-
"CzIfLnRlbXBvcmFsLmFwaS5jb21tb24udjEuUGF5bG9hZBIQCghpZGVudGl0",
129-
"eRgDIAEoCRJJCgdoZWFkZXJzGAUgAygLMjguY29yZXNkay53b3JrZmxvd19h",
130-
"Y3RpdmF0aW9uLlNpZ25hbFdvcmtmbG93LkhlYWRlcnNFbnRyeRpPCgxIZWFk",
131-
"ZXJzRW50cnkSCwoDa2V5GAEgASgJEi4KBXZhbHVlGAIgASgLMh8udGVtcG9y",
132-
"YWwuYXBpLmNvbW1vbi52MS5QYXlsb2FkOgI4ASIiCg5Ob3RpZnlIYXNQYXRj",
133-
"aBIQCghwYXRjaF9pZBgBIAEoCSJfCh1SZXNvbHZlU2lnbmFsRXh0ZXJuYWxX",
134-
"b3JrZmxvdxILCgNzZXEYASABKA0SMQoHZmFpbHVyZRgCIAEoCzIgLnRlbXBv",
135-
"cmFsLmFwaS5mYWlsdXJlLnYxLkZhaWx1cmUiZgokUmVzb2x2ZVJlcXVlc3RD",
136-
"YW5jZWxFeHRlcm5hbFdvcmtmbG93EgsKA3NlcRgBIAEoDRIxCgdmYWlsdXJl",
137-
"GAIgASgLMiAudGVtcG9yYWwuYXBpLmZhaWx1cmUudjEuRmFpbHVyZSLLAgoI",
138-
"RG9VcGRhdGUSCgoCaWQYASABKAkSHAoUcHJvdG9jb2xfaW5zdGFuY2VfaWQY",
139-
"AiABKAkSDAoEbmFtZRgDIAEoCRIuCgVpbnB1dBgEIAMoCzIfLnRlbXBvcmFs",
140-
"LmFwaS5jb21tb24udjEuUGF5bG9hZBJDCgdoZWFkZXJzGAUgAygLMjIuY29y",
141-
"ZXNkay53b3JrZmxvd19hY3RpdmF0aW9uLkRvVXBkYXRlLkhlYWRlcnNFbnRy",
142-
"eRIqCgRtZXRhGAYgASgLMhwudGVtcG9yYWwuYXBpLnVwZGF0ZS52MS5NZXRh",
143-
"EhUKDXJ1bl92YWxpZGF0b3IYByABKAgaTwoMSGVhZGVyc0VudHJ5EgsKA2tl",
144-
"eRgBIAEoCRIuCgV2YWx1ZRgCIAEoCzIfLnRlbXBvcmFsLmFwaS5jb21tb24u",
145-
"djEuUGF5bG9hZDoCOAEiwQIKD1JlbW92ZUZyb21DYWNoZRIPCgdtZXNzYWdl",
146-
"GAEgASgJEksKBnJlYXNvbhgCIAEoDjI7LmNvcmVzZGsud29ya2Zsb3dfYWN0",
147-
"aXZhdGlvbi5SZW1vdmVGcm9tQ2FjaGUuRXZpY3Rpb25SZWFzb24izwEKDkV2",
148-
"aWN0aW9uUmVhc29uEg8KC1VOU1BFQ0lGSUVEEAASDgoKQ0FDSEVfRlVMTBAB",
149-
"Eg4KCkNBQ0hFX01JU1MQAhISCg5OT05ERVRFUk1JTklTTRADEg0KCUxBTkdf",
150-
"RkFJTBAEEhIKDkxBTkdfUkVRVUVTVEVEEAUSEgoOVEFTS19OT1RfRk9VTkQQ",
151-
"BhIVChFVTkhBTkRMRURfQ09NTUFORBAHEgkKBUZBVEFMEAgSHwobUEFHSU5B",
152-
"VElPTl9PUl9ISVNUT1JZX0ZFVENIEAlCLuoCK1RlbXBvcmFsaW86OkJyaWRn",
153-
"ZTo6QXBpOjpXb3JrZmxvd0FjdGl2YXRpb25iBnByb3RvMw=="));
101+
"UmVzb2x1dGlvbhIQCghpc19sb2NhbBgDIAEoCCLRAgoiUmVzb2x2ZUNoaWxk",
102+
"V29ya2Zsb3dFeGVjdXRpb25TdGFydBILCgNzZXEYASABKA0SWwoJc3VjY2Vl",
103+
"ZGVkGAIgASgLMkYuY29yZXNkay53b3JrZmxvd19hY3RpdmF0aW9uLlJlc29s",
104+
"dmVDaGlsZFdvcmtmbG93RXhlY3V0aW9uU3RhcnRTdWNjZXNzSAASWAoGZmFp",
105+
"bGVkGAMgASgLMkYuY29yZXNkay53b3JrZmxvd19hY3RpdmF0aW9uLlJlc29s",
106+
"dmVDaGlsZFdvcmtmbG93RXhlY3V0aW9uU3RhcnRGYWlsdXJlSAASXQoJY2Fu",
107+
"Y2VsbGVkGAQgASgLMkguY29yZXNkay53b3JrZmxvd19hY3RpdmF0aW9uLlJl",
108+
"c29sdmVDaGlsZFdvcmtmbG93RXhlY3V0aW9uU3RhcnRDYW5jZWxsZWRIAEII",
109+
"CgZzdGF0dXMiOwopUmVzb2x2ZUNoaWxkV29ya2Zsb3dFeGVjdXRpb25TdGFy",
110+
"dFN1Y2Nlc3MSDgoGcnVuX2lkGAEgASgJIqYBCilSZXNvbHZlQ2hpbGRXb3Jr",
111+
"Zmxvd0V4ZWN1dGlvblN0YXJ0RmFpbHVyZRITCgt3b3JrZmxvd19pZBgBIAEo",
112+
"CRIVCg13b3JrZmxvd190eXBlGAIgASgJEk0KBWNhdXNlGAMgASgOMj4uY29y",
113+
"ZXNkay5jaGlsZF93b3JrZmxvdy5TdGFydENoaWxkV29ya2Zsb3dFeGVjdXRp",
114+
"b25GYWlsZWRDYXVzZSJgCitSZXNvbHZlQ2hpbGRXb3JrZmxvd0V4ZWN1dGlv",
115+
"blN0YXJ0Q2FuY2VsbGVkEjEKB2ZhaWx1cmUYASABKAsyIC50ZW1wb3JhbC5h",
116+
"cGkuZmFpbHVyZS52MS5GYWlsdXJlImkKHVJlc29sdmVDaGlsZFdvcmtmbG93",
117+
"RXhlY3V0aW9uEgsKA3NlcRgBIAEoDRI7CgZyZXN1bHQYAiABKAsyKy5jb3Jl",
118+
"c2RrLmNoaWxkX3dvcmtmbG93LkNoaWxkV29ya2Zsb3dSZXN1bHQiKwoQVXBk",
119+
"YXRlUmFuZG9tU2VlZBIXCg9yYW5kb21uZXNzX3NlZWQYASABKAQihAIKDVF1",
120+
"ZXJ5V29ya2Zsb3cSEAoIcXVlcnlfaWQYASABKAkSEgoKcXVlcnlfdHlwZRgC",
121+
"IAEoCRIyCglhcmd1bWVudHMYAyADKAsyHy50ZW1wb3JhbC5hcGkuY29tbW9u",
122+
"LnYxLlBheWxvYWQSSAoHaGVhZGVycxgFIAMoCzI3LmNvcmVzZGsud29ya2Zs",
123+
"b3dfYWN0aXZhdGlvbi5RdWVyeVdvcmtmbG93LkhlYWRlcnNFbnRyeRpPCgxI",
124+
"ZWFkZXJzRW50cnkSCwoDa2V5GAEgASgJEi4KBXZhbHVlGAIgASgLMh8udGVt",
125+
"cG9yYWwuYXBpLmNvbW1vbi52MS5QYXlsb2FkOgI4ASJCCg5DYW5jZWxXb3Jr",
126+
"ZmxvdxIwCgdkZXRhaWxzGAEgAygLMh8udGVtcG9yYWwuYXBpLmNvbW1vbi52",
127+
"MS5QYXlsb2FkIoMCCg5TaWduYWxXb3JrZmxvdxITCgtzaWduYWxfbmFtZRgB",
128+
"IAEoCRIuCgVpbnB1dBgCIAMoCzIfLnRlbXBvcmFsLmFwaS5jb21tb24udjEu",
129+
"UGF5bG9hZBIQCghpZGVudGl0eRgDIAEoCRJJCgdoZWFkZXJzGAUgAygLMjgu",
130+
"Y29yZXNkay53b3JrZmxvd19hY3RpdmF0aW9uLlNpZ25hbFdvcmtmbG93Lkhl",
131+
"YWRlcnNFbnRyeRpPCgxIZWFkZXJzRW50cnkSCwoDa2V5GAEgASgJEi4KBXZh",
132+
"bHVlGAIgASgLMh8udGVtcG9yYWwuYXBpLmNvbW1vbi52MS5QYXlsb2FkOgI4",
133+
"ASIiCg5Ob3RpZnlIYXNQYXRjaBIQCghwYXRjaF9pZBgBIAEoCSJfCh1SZXNv",
134+
"bHZlU2lnbmFsRXh0ZXJuYWxXb3JrZmxvdxILCgNzZXEYASABKA0SMQoHZmFp",
135+
"bHVyZRgCIAEoCzIgLnRlbXBvcmFsLmFwaS5mYWlsdXJlLnYxLkZhaWx1cmUi",
136+
"ZgokUmVzb2x2ZVJlcXVlc3RDYW5jZWxFeHRlcm5hbFdvcmtmbG93EgsKA3Nl",
137+
"cRgBIAEoDRIxCgdmYWlsdXJlGAIgASgLMiAudGVtcG9yYWwuYXBpLmZhaWx1",
138+
"cmUudjEuRmFpbHVyZSLLAgoIRG9VcGRhdGUSCgoCaWQYASABKAkSHAoUcHJv",
139+
"dG9jb2xfaW5zdGFuY2VfaWQYAiABKAkSDAoEbmFtZRgDIAEoCRIuCgVpbnB1",
140+
"dBgEIAMoCzIfLnRlbXBvcmFsLmFwaS5jb21tb24udjEuUGF5bG9hZBJDCgdo",
141+
"ZWFkZXJzGAUgAygLMjIuY29yZXNkay53b3JrZmxvd19hY3RpdmF0aW9uLkRv",
142+
"VXBkYXRlLkhlYWRlcnNFbnRyeRIqCgRtZXRhGAYgASgLMhwudGVtcG9yYWwu",
143+
"YXBpLnVwZGF0ZS52MS5NZXRhEhUKDXJ1bl92YWxpZGF0b3IYByABKAgaTwoM",
144+
"SGVhZGVyc0VudHJ5EgsKA2tleRgBIAEoCRIuCgV2YWx1ZRgCIAEoCzIfLnRl",
145+
"bXBvcmFsLmFwaS5jb21tb24udjEuUGF5bG9hZDoCOAEiwQIKD1JlbW92ZUZy",
146+
"b21DYWNoZRIPCgdtZXNzYWdlGAEgASgJEksKBnJlYXNvbhgCIAEoDjI7LmNv",
147+
"cmVzZGsud29ya2Zsb3dfYWN0aXZhdGlvbi5SZW1vdmVGcm9tQ2FjaGUuRXZp",
148+
"Y3Rpb25SZWFzb24izwEKDkV2aWN0aW9uUmVhc29uEg8KC1VOU1BFQ0lGSUVE",
149+
"EAASDgoKQ0FDSEVfRlVMTBABEg4KCkNBQ0hFX01JU1MQAhISCg5OT05ERVRF",
150+
"Uk1JTklTTRADEg0KCUxBTkdfRkFJTBAEEhIKDkxBTkdfUkVRVUVTVEVEEAUS",
151+
"EgoOVEFTS19OT1RfRk9VTkQQBhIVChFVTkhBTkRMRURfQ09NTUFORBAHEgkK",
152+
"BUZBVEFMEAgSHwobUEFHSU5BVElPTl9PUl9ISVNUT1JZX0ZFVENIEAlCLuoC",
153+
"K1RlbXBvcmFsaW86OkJyaWRnZTo6QXBpOjpXb3JrZmxvd0FjdGl2YXRpb25i",
154+
"BnByb3RvMw=="));
154155
descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
155156
new pbr::FileDescriptor[] { global::Google.Protobuf.WellKnownTypes.TimestampReflection.Descriptor, global::Google.Protobuf.WellKnownTypes.DurationReflection.Descriptor, global::Temporalio.Api.Failure.V1.MessageReflection.Descriptor, global::Temporalio.Api.Update.V1.MessageReflection.Descriptor, global::Temporalio.Api.Common.V1.MessageReflection.Descriptor, global::Temporalio.Api.Enums.V1.WorkflowReflection.Descriptor, global::Temporalio.Bridge.Api.ActivityResult.ActivityResultReflection.Descriptor, global::Temporalio.Bridge.Api.ChildWorkflow.ChildWorkflowReflection.Descriptor, global::Temporalio.Bridge.Api.Common.CommonReflection.Descriptor, },
156157
new pbr::GeneratedClrTypeInfo(null, null, new pbr::GeneratedClrTypeInfo[] {
157158
new pbr::GeneratedClrTypeInfo(typeof(global::Temporalio.Bridge.Api.WorkflowActivation.WorkflowActivation), global::Temporalio.Bridge.Api.WorkflowActivation.WorkflowActivation.Parser, new[]{ "RunId", "Timestamp", "IsReplaying", "HistoryLength", "Jobs", "AvailableInternalFlags", "HistorySizeBytes", "ContinueAsNewSuggested", "BuildIdForCurrentTask" }, null, null, null, null),
158159
new pbr::GeneratedClrTypeInfo(typeof(global::Temporalio.Bridge.Api.WorkflowActivation.WorkflowActivationJob), global::Temporalio.Bridge.Api.WorkflowActivation.WorkflowActivationJob.Parser, new[]{ "StartWorkflow", "FireTimer", "UpdateRandomSeed", "QueryWorkflow", "CancelWorkflow", "SignalWorkflow", "ResolveActivity", "NotifyHasPatch", "ResolveChildWorkflowExecutionStart", "ResolveChildWorkflowExecution", "ResolveSignalExternalWorkflow", "ResolveRequestCancelExternalWorkflow", "DoUpdate", "RemoveFromCache" }, new[]{ "Variant" }, null, null, null),
159160
new pbr::GeneratedClrTypeInfo(typeof(global::Temporalio.Bridge.Api.WorkflowActivation.StartWorkflow), global::Temporalio.Bridge.Api.WorkflowActivation.StartWorkflow.Parser, new[]{ "WorkflowType", "WorkflowId", "Arguments", "RandomnessSeed", "Headers", "Identity", "ParentWorkflowInfo", "WorkflowExecutionTimeout", "WorkflowRunTimeout", "WorkflowTaskTimeout", "ContinuedFromExecutionRunId", "ContinuedInitiator", "ContinuedFailure", "LastCompletionResult", "FirstExecutionRunId", "RetryPolicy", "Attempt", "CronSchedule", "WorkflowExecutionExpirationTime", "CronScheduleToScheduleInterval", "Memo", "SearchAttributes", "StartTime" }, null, null, null, new pbr::GeneratedClrTypeInfo[] { null, }),
160161
new pbr::GeneratedClrTypeInfo(typeof(global::Temporalio.Bridge.Api.WorkflowActivation.FireTimer), global::Temporalio.Bridge.Api.WorkflowActivation.FireTimer.Parser, new[]{ "Seq" }, null, null, null, null),
161-
new pbr::GeneratedClrTypeInfo(typeof(global::Temporalio.Bridge.Api.WorkflowActivation.ResolveActivity), global::Temporalio.Bridge.Api.WorkflowActivation.ResolveActivity.Parser, new[]{ "Seq", "Result" }, null, null, null, null),
162+
new pbr::GeneratedClrTypeInfo(typeof(global::Temporalio.Bridge.Api.WorkflowActivation.ResolveActivity), global::Temporalio.Bridge.Api.WorkflowActivation.ResolveActivity.Parser, new[]{ "Seq", "Result", "IsLocal" }, null, null, null, null),
162163
new pbr::GeneratedClrTypeInfo(typeof(global::Temporalio.Bridge.Api.WorkflowActivation.ResolveChildWorkflowExecutionStart), global::Temporalio.Bridge.Api.WorkflowActivation.ResolveChildWorkflowExecutionStart.Parser, new[]{ "Seq", "Succeeded", "Failed", "Cancelled" }, new[]{ "Status" }, null, null, null),
163164
new pbr::GeneratedClrTypeInfo(typeof(global::Temporalio.Bridge.Api.WorkflowActivation.ResolveChildWorkflowExecutionStartSuccess), global::Temporalio.Bridge.Api.WorkflowActivation.ResolveChildWorkflowExecutionStartSuccess.Parser, new[]{ "RunId" }, null, null, null, null),
164165
new pbr::GeneratedClrTypeInfo(typeof(global::Temporalio.Bridge.Api.WorkflowActivation.ResolveChildWorkflowExecutionStartFailure), global::Temporalio.Bridge.Api.WorkflowActivation.ResolveChildWorkflowExecutionStartFailure.Parser, new[]{ "WorkflowId", "WorkflowType", "Cause" }, null, null, null, null),
@@ -186,22 +187,37 @@ static WorkflowActivationReflection() {
186187
/// ## Job ordering guarantees and semantics
187188
///
188189
/// Core will, by default, order jobs within the activation as follows:
189-
/// `patches -> signals/updates -> other -> queries -> evictions`
190+
/// 1. patches
191+
/// 2. random-seed-updates
192+
/// 3. signals/updates
193+
/// 4. all others
194+
/// 5. local activity resolutions
195+
/// 6. queries
196+
/// 7. evictions
190197
///
191198
/// This is because:
192199
/// * Patches are expected to apply to the entire activation
193200
/// * Signal and update handlers should be invoked before workflow routines are iterated. That is to
194201
/// say before the users' main workflow function and anything spawned by it is allowed to continue.
202+
/// * Local activities resolutions go after other normal jobs because while *not* replaying, they
203+
/// will always take longer than anything else that produces an immediate job (which is
204+
/// effectively instant). When *replaying* we need to scan ahead for LA markers so that we can
205+
/// resolve them in the same activation that they completed in when not replaying. However, doing
206+
/// so would, by default, put those resolutions *before* any other immediate jobs that happened
207+
/// in that same activation (prime example: cancelling not-wait-for-cancel activities). So, we do
208+
/// this to ensure the LA resolution happens after that cancel (or whatever else it may be) as it
209+
/// normally would have when executing.
195210
/// * Queries always go last (and, in fact, always come in their own activation)
196211
/// * Evictions also always come in their own activation
197212
///
198-
/// The downside of this reordering is that a signal or update handler may not observe that some
199-
/// other event had already happened (ex: an activity completed) when it is first invoked, though it
200-
/// will subsequently when workflow routines are driven. Core only does this reordering to make life
201-
/// easier for languages that cannot explicitly control when workflow routines are iterated.
202-
/// Languages that can explicitly control such iteration should prefer to apply all the jobs to state
203-
/// (by resolving promises/futures, invoking handlers, etc as they iterate over the jobs) and then
204-
/// only *after* that is done, drive the workflow routines.
213+
/// Core does this reordering to ensure that langs observe jobs in the same order during replay as
214+
/// they would have during execution. However, in principle, this ordering is not necessary
215+
/// (excepting queries/evictions, which definitely must come last) if lang layers apply all jobs to
216+
/// state *first* (by resolving promises/futures, marking handlers to be invoked, etc as they iterate
217+
/// over the jobs) and then only *after* that is done, drive coroutines/threads/whatever. If
218+
/// execution works this way, then determinism is only impacted by the order routines are driven in
219+
/// (which must be stable based on lang implementation or convention), rather than the order jobs are
220+
/// processed.
205221
///
206222
/// ## Evictions
207223
///
@@ -3083,6 +3099,7 @@ public ResolveActivity() {
30833099
public ResolveActivity(ResolveActivity other) : this() {
30843100
seq_ = other.seq_;
30853101
result_ = other.result_ != null ? other.result_.Clone() : null;
3102+
isLocal_ = other.isLocal_;
30863103
_unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
30873104
}
30883105

@@ -3119,6 +3136,22 @@ public uint Seq {
31193136
}
31203137
}
31213138

3139+
/// <summary>Field number for the "is_local" field.</summary>
3140+
public const int IsLocalFieldNumber = 3;
3141+
private bool isLocal_;
3142+
/// <summary>
3143+
/// Set to true if the resolution is for a local activity. This is used internally by Core and
3144+
/// lang does not need to care about it.
3145+
/// </summary>
3146+
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
3147+
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
3148+
public bool IsLocal {
3149+
get { return isLocal_; }
3150+
set {
3151+
isLocal_ = value;
3152+
}
3153+
}
3154+
31223155
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
31233156
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
31243157
public override bool Equals(object other) {
@@ -3136,6 +3169,7 @@ public bool Equals(ResolveActivity other) {
31363169
}
31373170
if (Seq != other.Seq) return false;
31383171
if (!object.Equals(Result, other.Result)) return false;
3172+
if (IsLocal != other.IsLocal) return false;
31393173
return Equals(_unknownFields, other._unknownFields);
31403174
}
31413175

@@ -3145,6 +3179,7 @@ public override int GetHashCode() {
31453179
int hash = 1;
31463180
if (Seq != 0) hash ^= Seq.GetHashCode();
31473181
if (result_ != null) hash ^= Result.GetHashCode();
3182+
if (IsLocal != false) hash ^= IsLocal.GetHashCode();
31483183
if (_unknownFields != null) {
31493184
hash ^= _unknownFields.GetHashCode();
31503185
}
@@ -3171,6 +3206,10 @@ public void WriteTo(pb::CodedOutputStream output) {
31713206
output.WriteRawTag(18);
31723207
output.WriteMessage(Result);
31733208
}
3209+
if (IsLocal != false) {
3210+
output.WriteRawTag(24);
3211+
output.WriteBool(IsLocal);
3212+
}
31743213
if (_unknownFields != null) {
31753214
_unknownFields.WriteTo(output);
31763215
}
@@ -3189,6 +3228,10 @@ public void WriteTo(pb::CodedOutputStream output) {
31893228
output.WriteRawTag(18);
31903229
output.WriteMessage(Result);
31913230
}
3231+
if (IsLocal != false) {
3232+
output.WriteRawTag(24);
3233+
output.WriteBool(IsLocal);
3234+
}
31923235
if (_unknownFields != null) {
31933236
_unknownFields.WriteTo(ref output);
31943237
}
@@ -3205,6 +3248,9 @@ public int CalculateSize() {
32053248
if (result_ != null) {
32063249
size += 1 + pb::CodedOutputStream.ComputeMessageSize(Result);
32073250
}
3251+
if (IsLocal != false) {
3252+
size += 1 + 1;
3253+
}
32083254
if (_unknownFields != null) {
32093255
size += _unknownFields.CalculateSize();
32103256
}
@@ -3226,6 +3272,9 @@ public void MergeFrom(ResolveActivity other) {
32263272
}
32273273
Result.MergeFrom(other.Result);
32283274
}
3275+
if (other.IsLocal != false) {
3276+
IsLocal = other.IsLocal;
3277+
}
32293278
_unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
32303279
}
32313280

@@ -3252,6 +3301,10 @@ public void MergeFrom(pb::CodedInputStream input) {
32523301
input.ReadMessage(Result);
32533302
break;
32543303
}
3304+
case 24: {
3305+
IsLocal = input.ReadBool();
3306+
break;
3307+
}
32553308
}
32563309
}
32573310
#endif
@@ -3278,6 +3331,10 @@ public void MergeFrom(pb::CodedInputStream input) {
32783331
input.ReadMessage(Result);
32793332
break;
32803333
}
3334+
case 24: {
3335+
IsLocal = input.ReadBool();
3336+
break;
3337+
}
32813338
}
32823339
}
32833340
}

0 commit comments

Comments
 (0)