Preserve legacy Nexus operation config settings

This commit is contained in:
Stephan Behnke
2026-08-28 08:35:16 -07:00
parent d7832c5be1
commit 1ff28d0fac
4 changed files with 10 additions and 9 deletions

View File

@@ -233,11 +233,11 @@ The circuit breaker is dynamically configurable via:
## Nexus Operations
The legacy HSM [`nexusoperations` package](../../service/history/hsm/nexusoperations) holds the logic for scheduling
Nexus Operations from a workflow and maintaining the Operations's lifecycle.
The [`nexusoperations` component](../../components/nexusoperations) holds all of the logic for scheduling Nexus
Operations from a workflow and maintaining the Operations's lifecycle.
There are some other pieces of Nexus logic spread around other parts of the server (`common`, `frontend`, and
`matching`) but the legacy history service logic is almost completely contained in the package.
`matching`) but the history service logic is almost completely contained in the component.
A Nexus Operation is modelled as a collection of state machines, tasks, and executors using the Hierarchical State
Machine framework (docs TBD).

View File

@@ -21,6 +21,7 @@ import (
"go.temporal.io/server/common/metrics"
"go.temporal.io/server/common/persistence/visibility/manager"
"go.temporal.io/server/common/retrypolicy"
"go.temporal.io/server/service/history/hsm/nexusoperations"
"google.golang.org/grpc"
"google.golang.org/grpc/health"
healthpb "google.golang.org/grpc/health/grpc_health_v1"
@@ -410,10 +411,10 @@ func NewConfig(
CallbackURLMaxLength: dynamicconfig.FrontendCallbackURLMaxLength.Get(dc),
CallbackHeaderMaxSize: dynamicconfig.FrontendCallbackHeaderMaxSize.Get(dc),
MaxCallbacksPerWorkflow: dynamicconfig.MaxCallbacksPerWorkflow.Get(dc),
MaxNexusOperationTokenLength: chasmnexus.MaxOperationTokenLength.Get(dc),
MaxNexusOperationTokenLength: nexusoperations.MaxOperationTokenLength.Get(dc),
NexusRequestHeadersBlacklist: dynamicconfig.FrontendNexusRequestHeadersBlacklist.Get(dc),
NexusForwardRequestUseEndpoint: dynamicconfig.FrontendNexusForwardRequestUseEndpointDispatch.Get(dc),
NexusOperationsMetricTagConfig: chasmnexus.MetricTagConfiguration.Get(dc),
NexusOperationsMetricTagConfig: nexusoperations.MetricTagConfiguration.Get(dc),
LinkMaxSize: dynamicconfig.FrontendLinkMaxSize.Get(dc),
MaxLinksPerRequest: dynamicconfig.FrontendMaxLinksPerRequest.Get(dc),

View File

@@ -6,11 +6,11 @@ package matching
import (
"time"
"go.temporal.io/server/chasm/lib/nexusoperation"
"go.temporal.io/server/common/backoff"
"go.temporal.io/server/common/dynamicconfig"
"go.temporal.io/server/common/namespace"
"go.temporal.io/server/common/tqid"
"go.temporal.io/server/service/history/hsm/nexusoperations"
"go.temporal.io/server/service/matching/counter"
)
@@ -378,7 +378,7 @@ func NewConfig(
ListNexusEndpointsLongPollTimeout: dynamicconfig.MatchingListNexusEndpointsLongPollTimeout.Get(dc),
NexusEndpointsRefreshInterval: dynamicconfig.MatchingNexusEndpointsRefreshInterval.Get(dc),
MinDispatchTaskTimeout: nexusoperation.MinDispatchTaskTimeout.Get(dc),
MinDispatchTaskTimeout: nexusoperations.MinDispatchTaskTimeout.Get(dc),
PollerScalingBacklogAgeScaleUp: dynamicconfig.MatchingPollerScalingBacklogAgeScaleUp.Get(dc),
PollerScalingWaitTime: dynamicconfig.MatchingPollerScalingWaitTime.Get(dc),

View File

@@ -40,7 +40,6 @@ import (
persistencespb "go.temporal.io/server/api/persistence/v1"
taskqueuespb "go.temporal.io/server/api/taskqueue/v1"
tokenspb "go.temporal.io/server/api/token/v1"
"go.temporal.io/server/chasm/lib/nexusoperation"
"go.temporal.io/server/common"
"go.temporal.io/server/common/cache"
"go.temporal.io/server/common/clock"
@@ -74,6 +73,7 @@ import (
"go.temporal.io/server/common/tqid"
"go.temporal.io/server/common/worker_versioning"
"go.temporal.io/server/service/history/consts"
"go.temporal.io/server/service/history/hsm/nexusoperations"
"go.uber.org/mock/gomock"
"google.golang.org/grpc"
"google.golang.org/protobuf/types/known/durationpb"
@@ -4163,7 +4163,7 @@ func (s *matchingEngineSuite) TestPollWorkflowTaskQueueWithRateLimiterError() {
func (s *matchingEngineSuite) TestDispatchNexusTask_ValidateTimeoutBuffer() {
const ctxTimeout = 2 * time.Second
var defaultTimeoutBuffer = nexusoperation.MinDispatchTaskTimeout.Get(dynamicconfig.NewNoopCollection())("my-nsid")
var defaultTimeoutBuffer = nexusoperations.MinDispatchTaskTimeout.Get(dynamicconfig.NewNoopCollection())("my-nsid")
type testCase struct {
name string