mirror of
https://github.com/temporalio/temporal.git
synced 2026-08-30 18:41:49 -07:00
Support CHASM Nexus operations in workflow reset reapply (#10986)
## What changed? Foundational half of CHASM Nexus operation support in workflow reset / replication. Brings the shared event-reapply / cherry-pick path (used by workflow reset **and** replication conflict resolution) to handle CHASM-backed Nexus operations, and adds the plumbing both halves need. - `ndc/workflow_resetter.go` — `reapplyEvents` probes HSM, then falls back to the CHASM workflow registry, using an explicit `cherryPickOutcome` (applied / skipped / fallback). - rest of the changes are related to plumbing of CHASM workflow registry and enableChasmWorkflowOperations dynamic config ## Why? Reset (and replication conflict resolution) reapply post-reset-point / divergent-branch events to the surviving run. Without this, a CHASM-backed Nexus operation event that must be reapplied is dropped or mis-routed. ## How did you test it? - [x] built - [ ] run locally and tested manually - [x] covered by existing tests - [x] added new unit test(s) - [ ] added new functional test(s) ## Potential risks - Changes `ndc.NewEventsReapplier`'s signature. External consumer saas-temporal calls it, so companion PR temporalio/saas-temporal (matching branch `gokhan/nexus-reset-reapply`) updates that call site; the crossrepo check validates them together.
This commit is contained in:
@@ -2,6 +2,7 @@ package configs
|
||||
|
||||
import (
|
||||
"go.temporal.io/server/chasm/lib/callback"
|
||||
"go.temporal.io/server/chasm/lib/nexusoperation"
|
||||
"go.temporal.io/server/common"
|
||||
"go.temporal.io/server/common/dynamicconfig"
|
||||
"go.temporal.io/server/common/namespace"
|
||||
@@ -72,6 +73,7 @@ type Config struct {
|
||||
MaxCallbacksPerExecution dynamicconfig.IntPropertyFnWithNamespaceFilter
|
||||
MaxCallbacksPerUpdateID dynamicconfig.IntPropertyFnWithNamespaceFilter
|
||||
EnableChasm dynamicconfig.BoolPropertyFnWithNamespaceFilter
|
||||
EnableChasmNexusWorkflowOperations dynamicconfig.BoolPropertyFnWithNamespaceFilter
|
||||
EnableCHASMCallbacks dynamicconfig.BoolPropertyFnWithNamespaceFilter
|
||||
EnableCHASMSignalBacklinks dynamicconfig.BoolPropertyFnWithNamespaceFilter
|
||||
EnableWorkflowUpdateCallbacks dynamicconfig.BoolPropertyFnWithNamespaceFilter
|
||||
@@ -499,6 +501,7 @@ func NewConfig(
|
||||
MaxCallbacksPerExecution: callback.MaxPerExecution.Get(dc),
|
||||
MaxCallbacksPerUpdateID: dynamicconfig.MaxCallbacksPerUpdateID.Get(dc),
|
||||
EnableChasm: dynamicconfig.EnableChasm.Get(dc),
|
||||
EnableChasmNexusWorkflowOperations: nexusoperation.EnableChasmWorkflowOperations.Get(dc),
|
||||
ChasmMaxInMemoryPureTasks: dynamicconfig.ChasmMaxInMemoryPureTasks.Get(dc),
|
||||
|
||||
EnableCHASMSchedulerCreation: dynamicconfig.EnableCHASMSchedulerCreation.Get(dc),
|
||||
|
||||
Reference in New Issue
Block a user