go.temporal.io/server@v1.23.0/common/dynamicconfig/constants.go (about)

     1  // The MIT License
     2  //
     3  // Copyright (c) 2020 Temporal Technologies Inc.  All rights reserved.
     4  //
     5  // Copyright (c) 2020 Uber Technologies, Inc.
     6  //
     7  // Permission is hereby granted, free of charge, to any person obtaining a copy
     8  // of this software and associated documentation files (the "Software"), to deal
     9  // in the Software without restriction, including without limitation the rights
    10  // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
    11  // copies of the Software, and to permit persons to whom the Software is
    12  // furnished to do so, subject to the following conditions:
    13  //
    14  // The above copyright notice and this permission notice shall be included in
    15  // all copies or substantial portions of the Software.
    16  //
    17  // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
    18  // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
    19  // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
    20  // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
    21  // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
    22  // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
    23  // THE SOFTWARE.
    24  
    25  package dynamicconfig
    26  
    27  func (k Key) String() string {
    28  	return string(k)
    29  }
    30  
    31  const (
    32  	// keys for admin
    33  
    34  	// AdminMatchingNamespaceToPartitionDispatchRate is the max qps of any task queue partition for a given namespace
    35  	AdminMatchingNamespaceToPartitionDispatchRate = "admin.matchingNamespaceToPartitionDispatchRate"
    36  	// AdminMatchingNamespaceTaskqueueToPartitionDispatchRate is the max qps of a task queue partition for a given namespace & task queue
    37  	AdminMatchingNamespaceTaskqueueToPartitionDispatchRate = "admin.matchingNamespaceTaskqueueToPartitionDispatchRate"
    38  
    39  	// keys for system
    40  
    41  	// DEPRECATED: the following block of configs are deprecated and replaced by the next block of configs
    42  	// StandardVisibilityPersistenceMaxReadQPS is the max QPC system host can query standard visibility DB (SQL or Cassandra) for read.
    43  	StandardVisibilityPersistenceMaxReadQPS = "system.standardVisibilityPersistenceMaxReadQPS"
    44  	// StandardVisibilityPersistenceMaxWriteQPS is the max QPC system host can query standard visibility DB (SQL or Cassandra) for write.
    45  	StandardVisibilityPersistenceMaxWriteQPS = "system.standardVisibilityPersistenceMaxWriteQPS"
    46  	// AdvancedVisibilityPersistenceMaxReadQPS is the max QPC system host can query advanced visibility DB (Elasticsearch) for read.
    47  	AdvancedVisibilityPersistenceMaxReadQPS = "system.advancedVisibilityPersistenceMaxReadQPS"
    48  	// AdvancedVisibilityPersistenceMaxWriteQPS is the max QPC system host can query advanced visibility DB (Elasticsearch) for write.
    49  	AdvancedVisibilityPersistenceMaxWriteQPS = "system.advancedVisibilityPersistenceMaxWriteQPS"
    50  	// AdvancedVisibilityWritingMode is key for how to write to advanced visibility
    51  	AdvancedVisibilityWritingMode = "system.advancedVisibilityWritingMode"
    52  	// EnableWriteToSecondaryAdvancedVisibility is the config to enable write to secondary visibility for Elasticsearch
    53  	EnableWriteToSecondaryAdvancedVisibility = "system.enableWriteToSecondaryAdvancedVisibility"
    54  	// EnableReadVisibilityFromES is key for enable read from Elasticsearch
    55  	EnableReadVisibilityFromES = "system.enableReadVisibilityFromES"
    56  	// EnableReadFromSecondaryAdvancedVisibility is the config to enable read from secondary Elasticsearch
    57  	EnableReadFromSecondaryAdvancedVisibility = "system.enableReadFromSecondaryAdvancedVisibility"
    58  
    59  	// VisibilityPersistenceMaxReadQPS is the max QPC system host can query visibility DB for read.
    60  	VisibilityPersistenceMaxReadQPS = "system.visibilityPersistenceMaxReadQPS"
    61  	// VisibilityPersistenceMaxWriteQPS is the max QPC system host can query visibility DB for write.
    62  	VisibilityPersistenceMaxWriteQPS = "system.visibilityPersistenceMaxWriteQPS"
    63  	// EnableReadFromSecondaryVisibility is the config to enable read from secondary visibility
    64  	EnableReadFromSecondaryVisibility = "system.enableReadFromSecondaryVisibility"
    65  	// SecondaryVisibilityWritingMode is key for how to write to secondary visibility
    66  	SecondaryVisibilityWritingMode = "system.secondaryVisibilityWritingMode"
    67  	// VisibilityDisableOrderByClause is the config to disable ORDERY BY clause for Elasticsearch
    68  	VisibilityDisableOrderByClause = "system.visibilityDisableOrderByClause"
    69  	// VisibilityEnableManualPagination is the config to enable manual pagination for Elasticsearch
    70  	VisibilityEnableManualPagination = "system.visibilityEnableManualPagination"
    71  	// VisibilityAllowList is the config to allow list of values for regular types
    72  	VisibilityAllowList = "system.visibilityAllowList"
    73  	// SuppressErrorSetSystemSearchAttribute suppresses errors when trying to set
    74  	// values in system search attributes.
    75  	SuppressErrorSetSystemSearchAttribute = "system.suppressErrorSetSystemSearchAttribute"
    76  
    77  	// HistoryArchivalState is key for the state of history archival
    78  	HistoryArchivalState = "system.historyArchivalState"
    79  	// EnableReadFromHistoryArchival is key for enabling reading history from archival store
    80  	EnableReadFromHistoryArchival = "system.enableReadFromHistoryArchival"
    81  	// VisibilityArchivalState is key for the state of visibility archival
    82  	VisibilityArchivalState = "system.visibilityArchivalState"
    83  	// EnableReadFromVisibilityArchival is key for enabling reading visibility from archival store
    84  	EnableReadFromVisibilityArchival = "system.enableReadFromVisibilityArchival"
    85  	// EnableNamespaceNotActiveAutoForwarding whether enabling DC auto forwarding to active cluster
    86  	// for signal / start / signal with start API if namespace is not active
    87  	EnableNamespaceNotActiveAutoForwarding = "system.enableNamespaceNotActiveAutoForwarding"
    88  	// TransactionSizeLimit is the largest allowed transaction size to persistence
    89  	TransactionSizeLimit = "system.transactionSizeLimit"
    90  	// DisallowQuery is the key to disallow query for a namespace
    91  	DisallowQuery = "system.disallowQuery"
    92  	// EnableAuthorization is the key to enable authorization for a namespace
    93  	EnableAuthorization = "system.enableAuthorization"
    94  	// EnableCrossNamespaceCommands is the key to enable commands for external namespaces
    95  	EnableCrossNamespaceCommands = "system.enableCrossNamespaceCommands"
    96  	// ClusterMetadataRefreshInterval is config to manage cluster metadata table refresh interval
    97  	ClusterMetadataRefreshInterval = "system.clusterMetadataRefreshInterval"
    98  	// ForceSearchAttributesCacheRefreshOnRead forces refreshing search attributes cache on a read operation, so we always
    99  	// get the latest data from DB. This effectively bypasses cache value and is used to facilitate testing of changes in
   100  	// search attributes. This should not be turned on in production.
   101  	ForceSearchAttributesCacheRefreshOnRead = "system.forceSearchAttributesCacheRefreshOnRead"
   102  	EnableRingpopTLS                        = "system.enableRingpopTLS"
   103  	// EnableParentClosePolicyWorker decides whether or not enable system workers for processing parent close policy task
   104  	EnableParentClosePolicyWorker = "system.enableParentClosePolicyWorker"
   105  	// EnableStickyQuery indicates if sticky query should be enabled per namespace
   106  	EnableStickyQuery = "system.enableStickyQuery"
   107  	// EnableActivityEagerExecution indicates if activity eager execution is enabled per namespace
   108  	EnableActivityEagerExecution = "system.enableActivityEagerExecution"
   109  	// EnableEagerWorkflowStart toggles "eager workflow start" - returning the first workflow task inline in the
   110  	// response to a StartWorkflowExecution request and skipping the trip through matching.
   111  	EnableEagerWorkflowStart = "system.enableEagerWorkflowStart"
   112  	// NamespaceCacheRefreshInterval is the key for namespace cache refresh interval dynamic config
   113  	NamespaceCacheRefreshInterval = "system.namespaceCacheRefreshInterval"
   114  	// PersistenceHealthSignalMetricsEnabled determines whether persistence shard RPS metrics are emitted
   115  	PersistenceHealthSignalMetricsEnabled = "system.persistenceHealthSignalMetricsEnabled"
   116  	// PersistenceHealthSignalAggregationEnabled determines whether persistence latency and error averages are tracked
   117  	PersistenceHealthSignalAggregationEnabled = "system.persistenceHealthSignalAggregationEnabled"
   118  	// PersistenceHealthSignalWindowSize is the time window size in seconds for aggregating persistence signals
   119  	PersistenceHealthSignalWindowSize = "system.persistenceHealthSignalWindowSize"
   120  	// PersistenceHealthSignalBufferSize is the maximum number of persistence signals to buffer in memory per signal key
   121  	PersistenceHealthSignalBufferSize = "system.persistenceHealthSignalBufferSize"
   122  	// ShardRPSWarnLimit is the per-shard RPS limit for warning
   123  	ShardRPSWarnLimit = "system.shardRPSWarnLimit"
   124  	// ShardPerNsRPSWarnPercent is the per-shard per-namespace RPS limit for warning as a percentage of ShardRPSWarnLimit
   125  	// these warning are not emitted if the value is set to 0 or less
   126  	ShardPerNsRPSWarnPercent = "system.shardPerNsRPSWarnPercent"
   127  	// OperatorRPSRatio is the percentage of the rate limit provided to priority rate limiters that should be used for
   128  	// operator API calls (highest priority). Should be >0.0 and <= 1.0 (defaults to 20% if not specified)
   129  	OperatorRPSRatio = "system.operatorRPSRatio"
   130  
   131  	// Whether the deadlock detector should dump goroutines
   132  	DeadlockDumpGoroutines = "system.deadlock.DumpGoroutines"
   133  	// Whether the deadlock detector should cause the grpc server to fail health checks
   134  	DeadlockFailHealthCheck = "system.deadlock.FailHealthCheck"
   135  	// Whether the deadlock detector should abort the process
   136  	DeadlockAbortProcess = "system.deadlock.AbortProcess"
   137  	// How often the detector checks each root.
   138  	DeadlockInterval = "system.deadlock.Interval"
   139  	// How many extra goroutines can be created per root.
   140  	DeadlockMaxWorkersPerRoot = "system.deadlock.MaxWorkersPerRoot"
   141  
   142  	// keys for size limit
   143  
   144  	// BlobSizeLimitError is the per event blob size limit
   145  	BlobSizeLimitError = "limit.blobSize.error"
   146  	// BlobSizeLimitWarn is the per event blob size limit for warning
   147  	BlobSizeLimitWarn = "limit.blobSize.warn"
   148  	// MemoSizeLimitError is the per event memo size limit
   149  	MemoSizeLimitError = "limit.memoSize.error"
   150  	// MemoSizeLimitWarn is the per event memo size limit for warning
   151  	MemoSizeLimitWarn = "limit.memoSize.warn"
   152  	// NumPendingChildExecutionsLimitError is the maximum number of pending child workflows a workflow can have before
   153  	// StartChildWorkflowExecution commands will fail.
   154  	NumPendingChildExecutionsLimitError = "limit.numPendingChildExecutions.error"
   155  	// NumPendingActivitiesLimitError is the maximum number of pending activities a workflow can have before
   156  	// ScheduleActivityTask will fail.
   157  	NumPendingActivitiesLimitError = "limit.numPendingActivities.error"
   158  	// NumPendingSignalsLimitError is the maximum number of pending signals a workflow can have before
   159  	// SignalExternalWorkflowExecution commands from this workflow will fail.
   160  	NumPendingSignalsLimitError = "limit.numPendingSignals.error"
   161  	// NumPendingCancelRequestsLimitError is the maximum number of pending requests to cancel other workflows a workflow can have before
   162  	// RequestCancelExternalWorkflowExecution commands will fail.
   163  	NumPendingCancelRequestsLimitError = "limit.numPendingCancelRequests.error"
   164  	// HistorySizeLimitError is the per workflow execution history size limit
   165  	HistorySizeLimitError = "limit.historySize.error"
   166  	// HistorySizeLimitWarn is the per workflow execution history size limit for warning
   167  	HistorySizeLimitWarn = "limit.historySize.warn"
   168  	// HistorySizeSuggestContinueAsNew is the workflow execution history size limit to suggest
   169  	// continue-as-new (in workflow task started event)
   170  	HistorySizeSuggestContinueAsNew = "limit.historySize.suggestContinueAsNew"
   171  	// HistoryCountLimitError is the per workflow execution history event count limit
   172  	HistoryCountLimitError = "limit.historyCount.error"
   173  	// HistoryCountLimitWarn is the per workflow execution history event count limit for warning
   174  	HistoryCountLimitWarn = "limit.historyCount.warn"
   175  	// MutableStateActivityFailureSizeLimitError is the per activity failure size limit for workflow mutable state.
   176  	// If exceeded, failure will be truncated before being stored in mutable state.
   177  	MutableStateActivityFailureSizeLimitError = "limit.mutableStateActivityFailureSize.error"
   178  	// MutableStateActivityFailureSizeLimitWarn is the per activity failure size warning limit for workflow mutable state
   179  	MutableStateActivityFailureSizeLimitWarn = "limit.mutableStateActivityFailureSize.warn"
   180  	// MutableStateSizeLimitError is the per workflow execution mutable state size limit in bytes
   181  	MutableStateSizeLimitError = "limit.mutableStateSize.error"
   182  	// MutableStateSizeLimitWarn is the per workflow execution mutable state size limit in bytes for warning
   183  	MutableStateSizeLimitWarn = "limit.mutableStateSize.warn"
   184  	// HistoryCountSuggestContinueAsNew is the workflow execution history event count limit to
   185  	// suggest continue-as-new (in workflow task started event)
   186  	HistoryCountSuggestContinueAsNew = "limit.historyCount.suggestContinueAsNew"
   187  	// HistoryMaxPageSize is default max size for GetWorkflowExecutionHistory in one page
   188  	HistoryMaxPageSize = "limit.historyMaxPageSize"
   189  	// MaxIDLengthLimit is the length limit for various IDs, including: Namespace, TaskQueue, WorkflowID, ActivityID, TimerID,
   190  	// WorkflowType, ActivityType, SignalName, MarkerName, ErrorReason/FailureReason/CancelCause, Identity, RequestID
   191  	MaxIDLengthLimit = "limit.maxIDLength"
   192  	// WorkerBuildIdSizeLimit is the byte length limit for a worker build id as used in the rpc methods for updating
   193  	// the version sets for a task queue.
   194  	// Do not set this to a value higher than 255 for clusters using SQL based persistence due to predefined VARCHAR
   195  	// column width.
   196  	WorkerBuildIdSizeLimit = "limit.workerBuildIdSize"
   197  	// VersionCompatibleSetLimitPerQueue is the max number of compatible sets allowed in the versioning data for a task
   198  	// queue. Update requests which would cause the versioning data to exceed this number will fail with a
   199  	// FailedPrecondition error.
   200  	VersionCompatibleSetLimitPerQueue = "limit.versionCompatibleSetLimitPerQueue"
   201  	// VersionBuildIdLimitPerQueue is the max number of build IDs allowed to be defined in the versioning data for a
   202  	// task queue. Update requests which would cause the versioning data to exceed this number will fail with a
   203  	// FailedPrecondition error.
   204  	VersionBuildIdLimitPerQueue = "limit.versionBuildIdLimitPerQueue"
   205  	// ReachabilityTaskQueueScanLimit limits the number of task queues to scan when responding to a
   206  	// GetWorkerTaskReachability query.
   207  	ReachabilityTaskQueueScanLimit = "limit.reachabilityTaskQueueScan"
   208  	// ReachabilityQueryBuildIdLimit limits the number of build ids that can be requested in a single call to the
   209  	// GetWorkerTaskReachability API.
   210  	ReachabilityQueryBuildIdLimit = "limit.reachabilityQueryBuildIds"
   211  	// ReachabilityQuerySetDurationSinceDefault is the minimum period since a version set was demoted from being the
   212  	// queue default before it is considered unreachable by new workflows.
   213  	// This setting allows some propogation delay of versioning data for the reachability queries, which may happen for
   214  	// the following reasons:
   215  	// 1. There are no workflows currently marked as open in the visibility store but a worker for the demoted version
   216  	// is currently processing a task.
   217  	// 2. There are delays in the visibility task processor (which is asynchronous).
   218  	// 3. There's propagation delay of the versioning data between matching nodes.
   219  	ReachabilityQuerySetDurationSinceDefault = "frontend.reachabilityQuerySetDurationSinceDefault"
   220  	// TaskQueuesPerBuildIdLimit limits the number of task queue names that can be mapped to a single build id.
   221  	TaskQueuesPerBuildIdLimit = "limit.taskQueuesPerBuildId"
   222  	// RemovableBuildIdDurationSinceDefault is the minimum duration since a build id was last default in its containing
   223  	// set for it to be considered for removal, used by the build id scavenger.
   224  	// This setting allows some propogation delay of versioning data, which may happen for the following reasons:
   225  	// 1. There are no workflows currently marked as open in the visibility store but a worker for the demoted version
   226  	// is currently processing a task.
   227  	// 2. There are delays in the visibility task processor (which is asynchronous).
   228  	// 3. There's propagation delay of the versioning data between matching nodes.
   229  	RemovableBuildIdDurationSinceDefault = "worker.removableBuildIdDurationSinceDefault"
   230  	// BuildIdScavengerVisibilityRPS is the rate limit for visibility calls from the build id scavenger
   231  	BuildIdScavenengerVisibilityRPS = "worker.buildIdScavengerVisibilityRPS"
   232  
   233  	// keys for frontend
   234  
   235  	// FrontendPersistenceMaxQPS is the max qps frontend host can query DB
   236  	FrontendPersistenceMaxQPS = "frontend.persistenceMaxQPS"
   237  	// FrontendPersistenceGlobalMaxQPS is the max qps frontend cluster can query DB
   238  	FrontendPersistenceGlobalMaxQPS = "frontend.persistenceGlobalMaxQPS"
   239  	// FrontendPersistenceNamespaceMaxQPS is the max qps each namespace on frontend host can query DB
   240  	FrontendPersistenceNamespaceMaxQPS = "frontend.persistenceNamespaceMaxQPS"
   241  	// FrontendPersistenceNamespaceMaxQPS is the max qps each namespace in frontend cluster can query DB
   242  	FrontendPersistenceGlobalNamespaceMaxQPS = "frontend.persistenceGlobalNamespaceMaxQPS"
   243  	// FrontendEnablePersistencePriorityRateLimiting indicates if priority rate limiting is enabled in frontend persistence client
   244  	FrontendEnablePersistencePriorityRateLimiting = "frontend.enablePersistencePriorityRateLimiting"
   245  	// FrontendPersistenceDynamicRateLimitingParams is a map that contains all adjustable dynamic rate limiting params
   246  	// see DefaultDynamicRateLimitingParams for available options and defaults
   247  	FrontendPersistenceDynamicRateLimitingParams = "frontend.persistenceDynamicRateLimitingParams"
   248  	// FrontendVisibilityMaxPageSize is default max size for ListWorkflowExecutions in one page
   249  	FrontendVisibilityMaxPageSize = "frontend.visibilityMaxPageSize"
   250  	// FrontendHistoryMaxPageSize is default max size for GetWorkflowExecutionHistory in one page
   251  	FrontendHistoryMaxPageSize = "frontend.historyMaxPageSize"
   252  	// FrontendRPS is workflow rate limit per second per-instance
   253  	FrontendRPS = "frontend.rps"
   254  	// FrontendGlobalRPS is workflow rate limit per second for the whole cluster
   255  	FrontendGlobalRPS = "frontend.globalRPS"
   256  	// FrontendNamespaceReplicationInducingAPIsRPS limits the per second request rate for namespace replication inducing
   257  	// APIs (e.g. RegisterNamespace, UpdateNamespace, UpdateWorkerBuildIdCompatibility).
   258  	// This config is EXPERIMENTAL and may be changed or removed in a later release.
   259  	FrontendNamespaceReplicationInducingAPIsRPS = "frontend.rps.namespaceReplicationInducingAPIs"
   260  	// FrontendMaxNamespaceRPSPerInstance is workflow namespace rate limit per second
   261  	FrontendMaxNamespaceRPSPerInstance = "frontend.namespaceRPS"
   262  	// FrontendMaxNamespaceBurstPerInstance is workflow namespace burst limit
   263  	FrontendMaxNamespaceBurstPerInstance = "frontend.namespaceBurst"
   264  	// FrontendMaxConcurrentLongRunningRequestsPerInstance limits concurrent long-running requests per-instance,
   265  	// per-API. Example requests include long-poll requests, and `Query` requests (which need to wait for WFTs). The
   266  	// limit is applied individually to each API method. This value is ignored if
   267  	// FrontendGlobalMaxConcurrentLongRunningRequests is greater than zero. Warning: setting this to zero will cause all
   268  	// long-running requests to fail. The name `frontend.namespaceCount` is kept for backwards compatibility with
   269  	// existing deployments even though it is a bit of a misnomer. This does not limit the number of namespaces; it is a
   270  	// per-_namespace_ limit on the _count_ of long-running requests. Requests are only throttled when the limit is
   271  	// exceeded, not when it is only reached.
   272  	FrontendMaxConcurrentLongRunningRequestsPerInstance = "frontend.namespaceCount"
   273  	// FrontendGlobalMaxConcurrentLongRunningRequests limits concurrent long-running requests across all frontend
   274  	// instances in the cluster, for a given namespace, per-API method. If this is set to 0 (the default), then it is
   275  	// ignored. The name `frontend.globalNamespaceCount` is kept for consistency with the per-instance limit name,
   276  	// `frontend.namespaceCount`.
   277  	FrontendGlobalMaxConcurrentLongRunningRequests = "frontend.globalNamespaceCount"
   278  	// FrontendMaxNamespaceVisibilityRPSPerInstance is namespace rate limit per second for visibility APIs.
   279  	// This config is EXPERIMENTAL and may be changed or removed in a later release.
   280  	FrontendMaxNamespaceVisibilityRPSPerInstance = "frontend.namespaceRPS.visibility"
   281  	// FrontendMaxNamespaceNamespaceReplicationInducingAPIsRPSPerInstance is a per host/per namespace RPS limit for
   282  	// namespace replication inducing APIs (e.g. RegisterNamespace, UpdateNamespace, UpdateWorkerBuildIdCompatibility).
   283  	// This config is EXPERIMENTAL and may be changed or removed in a later release.
   284  	FrontendMaxNamespaceNamespaceReplicationInducingAPIsRPSPerInstance = "frontend.namespaceRPS.namespaceReplicationInducingAPIs"
   285  	// FrontendMaxNamespaceVisibilityBurstPerInstance is namespace burst limit for visibility APIs.
   286  	// This config is EXPERIMENTAL and may be changed or removed in a later release.
   287  	FrontendMaxNamespaceVisibilityBurstPerInstance = "frontend.namespaceBurst.visibility"
   288  	// FrontendMaxNamespaceNamespaceReplicationInducingAPIsBurstPerInstance is a per host/per namespace burst limit for
   289  	// namespace replication inducing APIs (e.g. RegisterNamespace, UpdateNamespace, UpdateWorkerBuildIdCompatibility).
   290  	// This config is EXPERIMENTAL and may be changed or removed in a later release.
   291  	FrontendMaxNamespaceNamespaceReplicationInducingAPIsBurstPerInstance = "frontend.namespaceBurst.namespaceReplicationInducingAPIs"
   292  	// FrontendGlobalNamespaceRPS is workflow namespace rate limit per second for the whole cluster.
   293  	// The limit is evenly distributed among available frontend service instances.
   294  	// If this is set, it overwrites per instance limit "frontend.namespaceRPS".
   295  	FrontendGlobalNamespaceRPS = "frontend.globalNamespaceRPS"
   296  	// InternalFrontendGlobalNamespaceRPS is workflow namespace rate limit per second across
   297  	// all internal-frontends.
   298  	InternalFrontendGlobalNamespaceRPS = "internal-frontend.globalNamespaceRPS"
   299  	// FrontendGlobalNamespaceVisibilityRPS is workflow namespace rate limit per second for the whole cluster for visibility API.
   300  	// The limit is evenly distributed among available frontend service instances.
   301  	// If this is set, it overwrites per instance limit "frontend.namespaceRPS.visibility".
   302  	// This config is EXPERIMENTAL and may be changed or removed in a later release.
   303  	FrontendGlobalNamespaceVisibilityRPS = "frontend.globalNamespaceRPS.visibility"
   304  	// FrontendGlobalNamespaceNamespaceReplicationInducingAPIsRPS is a cluster global, per namespace RPS limit for
   305  	// namespace replication inducing APIs (e.g. RegisterNamespace, UpdateNamespace, UpdateWorkerBuildIdCompatibility).
   306  	// The limit is evenly distributed among available frontend service instances.
   307  	// If this is set, it overwrites the per instance limit configured with
   308  	// "frontend.namespaceRPS.namespaceReplicationInducingAPIs".
   309  	// This config is EXPERIMENTAL and may be changed or removed in a later release.
   310  	FrontendGlobalNamespaceNamespaceReplicationInducingAPIsRPS = "frontend.globalNamespaceRPS.namespaceReplicationInducingAPIs"
   311  	// InternalFrontendGlobalNamespaceVisibilityRPS is workflow namespace rate limit per second
   312  	// across all internal-frontends.
   313  	// This config is EXPERIMENTAL and may be changed or removed in a later release.
   314  	InternalFrontendGlobalNamespaceVisibilityRPS = "internal-frontend.globalNamespaceRPS.visibility"
   315  	// FrontendThrottledLogRPS is the rate limit on number of log messages emitted per second for throttled logger
   316  	FrontendThrottledLogRPS = "frontend.throttledLogRPS"
   317  	// FrontendShutdownDrainDuration is the duration of traffic drain during shutdown
   318  	FrontendShutdownDrainDuration = "frontend.shutdownDrainDuration"
   319  	// FrontendShutdownFailHealthCheckDuration is the duration of shutdown failure detection
   320  	FrontendShutdownFailHealthCheckDuration = "frontend.shutdownFailHealthCheckDuration"
   321  	// FrontendMaxBadBinaries is the max number of bad binaries in namespace config
   322  	FrontendMaxBadBinaries = "frontend.maxBadBinaries"
   323  	// SendRawWorkflowHistory is whether to enable raw history retrieving
   324  	SendRawWorkflowHistory = "frontend.sendRawWorkflowHistory"
   325  	// SearchAttributesNumberOfKeysLimit is the limit of number of keys
   326  	SearchAttributesNumberOfKeysLimit = "frontend.searchAttributesNumberOfKeysLimit"
   327  	// SearchAttributesSizeOfValueLimit is the size limit of each value
   328  	SearchAttributesSizeOfValueLimit = "frontend.searchAttributesSizeOfValueLimit"
   329  	// SearchAttributesTotalSizeLimit is the size limit of the whole map
   330  	SearchAttributesTotalSizeLimit = "frontend.searchAttributesTotalSizeLimit"
   331  	// VisibilityArchivalQueryMaxPageSize is the maximum page size for a visibility archival query
   332  	VisibilityArchivalQueryMaxPageSize = "frontend.visibilityArchivalQueryMaxPageSize"
   333  	// EnableServerVersionCheck is a flag that controls whether or not periodic version checking is enabled
   334  	EnableServerVersionCheck = "frontend.enableServerVersionCheck"
   335  	// EnableTokenNamespaceEnforcement enables enforcement that namespace in completion token matches namespace of the request
   336  	EnableTokenNamespaceEnforcement = "frontend.enableTokenNamespaceEnforcement"
   337  	// DisableListVisibilityByFilter is config to disable list open/close workflow using filter
   338  	DisableListVisibilityByFilter = "frontend.disableListVisibilityByFilter"
   339  	// KeepAliveMinTime is the minimum amount of time a client should wait before sending a keepalive ping.
   340  	KeepAliveMinTime = "frontend.keepAliveMinTime"
   341  	// KeepAlivePermitWithoutStream If true, server allows keepalive pings even when there are no active
   342  	// streams(RPCs). If false, and client sends ping when there are no active
   343  	// streams, server will send GOAWAY and close the connection.
   344  	KeepAlivePermitWithoutStream = "frontend.keepAlivePermitWithoutStream"
   345  	// KeepAliveMaxConnectionIdle is a duration for the amount of time after which an
   346  	// idle connection would be closed by sending a GoAway. Idleness duration is
   347  	// defined since the most recent time the number of outstanding RPCs became
   348  	// zero or the connection establishment.
   349  	KeepAliveMaxConnectionIdle = "frontend.keepAliveMaxConnectionIdle"
   350  	// KeepAliveMaxConnectionAge is a duration for the maximum amount of time a
   351  	// connection may exist before it will be closed by sending a GoAway. A
   352  	// random jitter of +/-10% will be added to MaxConnectionAge to spread out
   353  	// connection storms.
   354  	KeepAliveMaxConnectionAge = "frontend.keepAliveMaxConnectionAge"
   355  	// KeepAliveMaxConnectionAgeGrace is an additive period after MaxConnectionAge after
   356  	// which the connection will be forcibly closed.
   357  	KeepAliveMaxConnectionAgeGrace = "frontend.keepAliveMaxConnectionAgeGrace"
   358  	// KeepAliveTime After a duration of this time if the server doesn't see any activity it
   359  	// pings the client to see if the transport is still alive.
   360  	// If set below 1s, a minimum value of 1s will be used instead.
   361  	KeepAliveTime = "frontend.keepAliveTime"
   362  	// KeepAliveTimeout After having pinged for keepalive check, the server waits for a duration
   363  	// of Timeout and if no activity is seen even after that the connection is closed.
   364  	KeepAliveTimeout = "frontend.keepAliveTimeout"
   365  	// FrontendEnableSchedules enables schedule-related RPCs in the frontend
   366  	FrontendEnableSchedules = "frontend.enableSchedules"
   367  	// FrontendMaxConcurrentBatchOperationPerNamespace is the max concurrent batch operation job count per namespace
   368  	FrontendMaxConcurrentBatchOperationPerNamespace = "frontend.MaxConcurrentBatchOperationPerNamespace"
   369  	// FrontendMaxExecutionCountBatchOperationPerNamespace is the max execution count batch operation supports per namespace
   370  	FrontendMaxExecutionCountBatchOperationPerNamespace = "frontend.MaxExecutionCountBatchOperationPerNamespace"
   371  	// FrontendEnableBatcher enables batcher-related RPCs in the frontend
   372  	FrontendEnableBatcher = "frontend.enableBatcher"
   373  	// FrontendAccessHistoryFraction (0.0~1.0) is the fraction of history operations that are sent to the history
   374  	// service using the new RPCs. The remaining access history via the existing implementation.
   375  	// TODO: remove once migration completes.
   376  	FrontendAccessHistoryFraction = "frontend.accessHistoryFraction"
   377  	// FrontendAdminDeleteAccessHistoryFraction (0.0~1.0) is the fraction of admin DeleteWorkflowExecution requests
   378  	// that are sent to the history service using the new RPCs. The remaining access history via the existing implementation.
   379  	// TODO: remove once migration completes.
   380  	FrontendAdminDeleteAccessHistoryFraction = "frontend.adminDeleteAccessHistoryFraction"
   381  
   382  	// FrontendEnableUpdateWorkflowExecution enables UpdateWorkflowExecution API in the frontend.
   383  	// The UpdateWorkflowExecution API has gone through rigorous testing efforts but this config's default is `false` until the
   384  	// feature gets more time in production.
   385  	FrontendEnableUpdateWorkflowExecution = "frontend.enableUpdateWorkflowExecution"
   386  
   387  	// FrontendEnableUpdateWorkflowExecutionAsyncAccepted enables the form of
   388  	// asynchronous workflow execution update that waits on the "Accepted"
   389  	// lifecycle stage. Default value is `false`.
   390  	FrontendEnableUpdateWorkflowExecutionAsyncAccepted = "frontend.enableUpdateWorkflowExecutionAsyncAccepted"
   391  
   392  	// FrontendEnableWorkerVersioningDataAPIs enables worker versioning data read / write APIs.
   393  	FrontendEnableWorkerVersioningDataAPIs = "frontend.workerVersioningDataAPIs"
   394  	// FrontendEnableWorkerVersioningWorkflowAPIs enables worker versioning in workflow progress APIs.
   395  	FrontendEnableWorkerVersioningWorkflowAPIs = "frontend.workerVersioningWorkflowAPIs"
   396  
   397  	// DeleteNamespaceDeleteActivityRPS is an RPS per every parallel delete executions activity.
   398  	// Total RPS is equal to DeleteNamespaceDeleteActivityRPS * DeleteNamespaceConcurrentDeleteExecutionsActivities.
   399  	// Default value is 100.
   400  	DeleteNamespaceDeleteActivityRPS = "frontend.deleteNamespaceDeleteActivityRPS"
   401  	// DeleteNamespacePageSize is a page size to read executions from visibility for delete executions activity.
   402  	// Default value is 1000.
   403  	DeleteNamespacePageSize = "frontend.deleteNamespaceDeletePageSize"
   404  	// DeleteNamespacePagesPerExecution is a number of pages before returning ContinueAsNew from delete executions activity.
   405  	// Default value is 256.
   406  	DeleteNamespacePagesPerExecution = "frontend.deleteNamespacePagesPerExecution"
   407  	// DeleteNamespaceConcurrentDeleteExecutionsActivities is a number of concurrent delete executions activities.
   408  	// Must be not greater than 256 and number of worker cores in the cluster.
   409  	// Default is 4.
   410  	DeleteNamespaceConcurrentDeleteExecutionsActivities = "frontend.deleteNamespaceConcurrentDeleteExecutionsActivities"
   411  	// DeleteNamespaceNamespaceDeleteDelay is a duration for how long namespace stays in database
   412  	// after all namespace resources (i.e. workflow executions) are deleted.
   413  	// Default is 0, means, namespace will be deleted immediately.
   414  	DeleteNamespaceNamespaceDeleteDelay = "frontend.deleteNamespaceNamespaceDeleteDelay"
   415  
   416  	// keys for matching
   417  
   418  	// MatchingRPS is request rate per second for each matching host
   419  	MatchingRPS = "matching.rps"
   420  	// MatchingPersistenceMaxQPS is the max qps matching host can query DB
   421  	MatchingPersistenceMaxQPS = "matching.persistenceMaxQPS"
   422  	// MatchingPersistenceGlobalMaxQPS is the max qps matching cluster can query DB
   423  	MatchingPersistenceGlobalMaxQPS = "matching.persistenceGlobalMaxQPS"
   424  	// MatchingPersistenceNamespaceMaxQPS is the max qps each namespace on matching host can query DB
   425  	MatchingPersistenceNamespaceMaxQPS = "matching.persistenceNamespaceMaxQPS"
   426  	// MatchingPersistenceNamespaceMaxQPS is the max qps each namespace in matching cluster can query DB
   427  	MatchingPersistenceGlobalNamespaceMaxQPS = "matching.persistenceGlobalNamespaceMaxQPS"
   428  	// MatchingEnablePersistencePriorityRateLimiting indicates if priority rate limiting is enabled in matching persistence client
   429  	MatchingEnablePersistencePriorityRateLimiting = "matching.enablePersistencePriorityRateLimiting"
   430  	// MatchingPersistenceDynamicRateLimitingParams is a map that contains all adjustable dynamic rate limiting params
   431  	// see DefaultDynamicRateLimitingParams for available options and defaults
   432  	MatchingPersistenceDynamicRateLimitingParams = "matching.persistenceDynamicRateLimitingParams"
   433  	// MatchingMinTaskThrottlingBurstSize is the minimum burst size for task queue throttling
   434  	MatchingMinTaskThrottlingBurstSize = "matching.minTaskThrottlingBurstSize"
   435  	// MatchingGetTasksBatchSize is the maximum batch size to fetch from the task buffer
   436  	MatchingGetTasksBatchSize = "matching.getTasksBatchSize"
   437  	// MatchingLongPollExpirationInterval is the long poll expiration interval in the matching service
   438  	MatchingLongPollExpirationInterval = "matching.longPollExpirationInterval"
   439  	// MatchingSyncMatchWaitDuration is to wait time for sync match
   440  	MatchingSyncMatchWaitDuration = "matching.syncMatchWaitDuration"
   441  	// MatchingHistoryMaxPageSize is the maximum page size of history events returned on PollWorkflowTaskQueue requests
   442  	MatchingHistoryMaxPageSize = "matching.historyMaxPageSize"
   443  	// MatchingLoadUserData can be used to entirely disable loading user data from persistence (and the inter node RPCs
   444  	// that propoagate it). When turned off, features that rely on user data (e.g. worker versioning) will essentially
   445  	// be disabled. When disabled, matching will drop tasks for versioned workflows and activities to avoid breaking
   446  	// versioning semantics. Operator intervention will be required to reschedule the dropped tasks.
   447  	MatchingLoadUserData = "matching.loadUserData"
   448  	// MatchingUpdateAckInterval is the interval for update ack
   449  	MatchingUpdateAckInterval = "matching.updateAckInterval"
   450  	// MatchingMaxTaskQueueIdleTime is the time after which an idle task queue will be unloaded.
   451  	// Note: this should be greater than matching.longPollExpirationInterval and matching.getUserDataLongPollTimeout.
   452  	MatchingMaxTaskQueueIdleTime = "matching.maxTaskQueueIdleTime"
   453  	// MatchingOutstandingTaskAppendsThreshold is the threshold for outstanding task appends
   454  	MatchingOutstandingTaskAppendsThreshold = "matching.outstandingTaskAppendsThreshold"
   455  	// MatchingMaxTaskBatchSize is max batch size for task writer
   456  	MatchingMaxTaskBatchSize = "matching.maxTaskBatchSize"
   457  	// MatchingMaxTaskDeleteBatchSize is the max batch size for range deletion of tasks
   458  	MatchingMaxTaskDeleteBatchSize = "matching.maxTaskDeleteBatchSize"
   459  	// MatchingThrottledLogRPS is the rate limit on number of log messages emitted per second for throttled logger
   460  	MatchingThrottledLogRPS = "matching.throttledLogRPS"
   461  	// MatchingNumTaskqueueWritePartitions is the number of write partitions for a task queue
   462  	MatchingNumTaskqueueWritePartitions = "matching.numTaskqueueWritePartitions"
   463  	// MatchingNumTaskqueueReadPartitions is the number of read partitions for a task queue
   464  	MatchingNumTaskqueueReadPartitions = "matching.numTaskqueueReadPartitions"
   465  	// MatchingForwarderMaxOutstandingPolls is the max number of inflight polls from the forwarder
   466  	MatchingForwarderMaxOutstandingPolls = "matching.forwarderMaxOutstandingPolls"
   467  	// MatchingForwarderMaxOutstandingTasks is the max number of inflight addTask/queryTask from the forwarder
   468  	MatchingForwarderMaxOutstandingTasks = "matching.forwarderMaxOutstandingTasks"
   469  	// MatchingForwarderMaxRatePerSecond is the max rate at which add/query can be forwarded
   470  	MatchingForwarderMaxRatePerSecond = "matching.forwarderMaxRatePerSecond"
   471  	// MatchingForwarderMaxChildrenPerNode is the max number of children per node in the task queue partition tree
   472  	MatchingForwarderMaxChildrenPerNode = "matching.forwarderMaxChildrenPerNode"
   473  	// MatchingShutdownDrainDuration is the duration of traffic drain during shutdown
   474  	MatchingShutdownDrainDuration = "matching.shutdownDrainDuration"
   475  	// MatchingGetUserDataLongPollTimeout is the max length of long polls for GetUserData calls between partitions.
   476  	MatchingGetUserDataLongPollTimeout = "matching.getUserDataLongPollTimeout"
   477  	// MatchingBacklogNegligibleAge if the head of backlog gets older than this we stop sync match and
   478  	// forwarding to ensure more equal dispatch order among partitions.
   479  	MatchingBacklogNegligibleAge = "matching.backlogNegligibleAge"
   480  	// MatchingMaxWaitForPollerBeforeFwd in presence of a non-negligible backlog, we resume forwarding tasks if the
   481  	// duration since last poll exceeds this threshold.
   482  	MatchingMaxWaitForPollerBeforeFwd = "matching.maxWaitForPollerBeforeFwd"
   483  
   484  	// for matching testing only:
   485  
   486  	// TestMatchingDisableSyncMatch forces tasks to go through the db once
   487  	TestMatchingDisableSyncMatch = "test.matching.disableSyncMatch"
   488  	// TestMatchingLBForceReadPartition forces polls to go to a specific partition
   489  	TestMatchingLBForceReadPartition = "test.matching.lbForceReadPartition"
   490  	// TestMatchingLBForceWritePartition forces adds to go to a specific partition
   491  	TestMatchingLBForceWritePartition = "test.matching.lbForceWritePartition"
   492  
   493  	// keys for history
   494  
   495  	// EnableReplicationStream turn on replication stream
   496  	EnableReplicationStream = "history.enableReplicationStream"
   497  	// EnableHistoryReplicationDLQV2 switches to the DLQ v2 implementation for history replication. See details in
   498  	// [go.temporal.io/server/common/persistence.QueueV2]. This feature is currently in development. Do NOT use it in
   499  	// production.
   500  	EnableHistoryReplicationDLQV2 = "history.enableHistoryReplicationDLQV2"
   501  
   502  	// HistoryRPS is request rate per second for each history host
   503  	HistoryRPS = "history.rps"
   504  	// HistoryPersistenceMaxQPS is the max qps history host can query DB
   505  	HistoryPersistenceMaxQPS = "history.persistenceMaxQPS"
   506  	// HistoryPersistenceGlobalMaxQPS is the max qps history cluster can query DB
   507  	HistoryPersistenceGlobalMaxQPS = "history.persistenceGlobalMaxQPS"
   508  	// HistoryPersistenceNamespaceMaxQPS is the max qps each namespace on history host can query DB
   509  	// If value less or equal to 0, will fall back to HistoryPersistenceMaxQPS
   510  	HistoryPersistenceNamespaceMaxQPS = "history.persistenceNamespaceMaxQPS"
   511  	// HistoryPersistenceNamespaceMaxQPS is the max qps each namespace in history cluster can query DB
   512  	HistoryPersistenceGlobalNamespaceMaxQPS = "history.persistenceGlobalNamespaceMaxQPS"
   513  	// HistoryPersistencePerShardNamespaceMaxQPS is the max qps each namespace on a shard can query DB
   514  	HistoryPersistencePerShardNamespaceMaxQPS = "history.persistencePerShardNamespaceMaxQPS"
   515  	// HistoryEnablePersistencePriorityRateLimiting indicates if priority rate limiting is enabled in history persistence client
   516  	HistoryEnablePersistencePriorityRateLimiting = "history.enablePersistencePriorityRateLimiting"
   517  	// HistoryPersistenceDynamicRateLimitingParams is a map that contains all adjustable dynamic rate limiting params
   518  	// see DefaultDynamicRateLimitingParams for available options and defaults
   519  	HistoryPersistenceDynamicRateLimitingParams = "history.persistenceDynamicRateLimitingParams"
   520  	// HistoryLongPollExpirationInterval is the long poll expiration interval in the history service
   521  	HistoryLongPollExpirationInterval = "history.longPollExpirationInterval"
   522  	// HistoryCacheInitialSize is initial size of history cache
   523  	HistoryCacheInitialSize = "history.cacheInitialSize"
   524  	// HistoryCacheMaxSize is max size of history cache
   525  	HistoryCacheMaxSize = "history.cacheMaxSize"
   526  	// HistoryCacheTTL is TTL of history cache
   527  	HistoryCacheTTL = "history.cacheTTL"
   528  	// HistoryCacheNonUserContextLockTimeout controls how long non-user call (callerType != API or Operator)
   529  	// will wait on workflow lock acquisition. Requires service restart to take effect.
   530  	HistoryCacheNonUserContextLockTimeout = "history.cacheNonUserContextLockTimeout"
   531  	// EnableHostHistoryCache controls if the history cache is host level
   532  	EnableHostHistoryCache = "history.enableHostHistoryCache"
   533  	// HistoryCacheHostLevelMaxSize is max size of history host level cache
   534  	HistoryCacheHostLevelMaxSize = "history.hostLevelCacheMaxSize"
   535  	// EnableAPIGetCurrentRunIDLock controls if a lock should be acquired before getting current run ID for API requests
   536  	EnableAPIGetCurrentRunIDLock = "history.enableAPIGetCurrentRunIDLock"
   537  	// HistoryStartupMembershipJoinDelay is the duration a history instance waits
   538  	// before joining membership after starting.
   539  	HistoryStartupMembershipJoinDelay = "history.startupMembershipJoinDelay"
   540  	// HistoryShutdownDrainDuration is the duration of traffic drain during shutdown
   541  	HistoryShutdownDrainDuration = "history.shutdownDrainDuration"
   542  	// XDCCacheMaxSizeBytes is max size of events cache in bytes
   543  	XDCCacheMaxSizeBytes = "history.xdcCacheMaxSizeBytes"
   544  	// EventsCacheMaxSizeBytes is max size of events cache in bytes
   545  	EventsCacheMaxSizeBytes = "history.eventsCacheMaxSizeBytes"
   546  	// EventsCacheTTL is TTL of events cache
   547  	EventsCacheTTL = "history.eventsCacheTTL"
   548  	// AcquireShardInterval is interval that timer used to acquire shard
   549  	AcquireShardInterval = "history.acquireShardInterval"
   550  	// AcquireShardConcurrency is number of goroutines that can be used to acquire shards in the shard controller.
   551  	AcquireShardConcurrency = "history.acquireShardConcurrency"
   552  	// ShardLingerOwnershipCheckQPS is the frequency to perform shard ownership
   553  	// checks while a shard is lingering.
   554  	ShardLingerOwnershipCheckQPS = "history.shardLingerOwnershipCheckQPS"
   555  	// ShardLingerTimeLimit configures if and for how long the shard controller
   556  	// will temporarily delay closing shards after a membership update, awaiting a
   557  	// shard ownership lost error from persistence. Not recommended with
   558  	// persistence layers that are missing AssertShardOwnership support.
   559  	// If set to zero, shards will not delay closing.
   560  	ShardLingerTimeLimit = "history.shardLingerTimeLimit"
   561  	// ShardOwnershipAssertionEnabled configures if the shard ownership is asserted
   562  	// for API requests when a NotFound or NamespaceNotFound error is returned from
   563  	// persistence.
   564  	// NOTE: Shard ownership assertion is not implemented by any persistence implementation
   565  	// in this codebase, because assertion is not needed for persistence implementation
   566  	// that guarantees read after write consistency. As a result, even if this config is
   567  	// enabled, it's a no-op.
   568  	ShardOwnershipAssertionEnabled = "history.shardOwnershipAssertionEnabled"
   569  	// HistoryClientOwnershipCachingEnabled configures if history clients try to cache
   570  	// shard ownership information, instead of checking membership for each request.
   571  	// Only inspected when an instance first creates a history client, so changes
   572  	// to this require a restart to take effect.
   573  	HistoryClientOwnershipCachingEnabled = "history.clientOwnershipCachingEnabled"
   574  	// ShardIOConcurrency controls the concurrency of persistence operations in shard context
   575  	ShardIOConcurrency = "history.shardIOConcurrency"
   576  	// StandbyClusterDelay is the artificial delay added to standby cluster's view of active cluster's time
   577  	StandbyClusterDelay = "history.standbyClusterDelay"
   578  	// StandbyTaskMissingEventsResendDelay is the amount of time standby cluster's will wait (if events are missing)
   579  	// before calling remote for missing events
   580  	StandbyTaskMissingEventsResendDelay = "history.standbyTaskMissingEventsResendDelay"
   581  	// StandbyTaskMissingEventsDiscardDelay is the amount of time standby cluster's will wait (if events are missing)
   582  	// before discarding the task
   583  	StandbyTaskMissingEventsDiscardDelay = "history.standbyTaskMissingEventsDiscardDelay"
   584  	// QueuePendingTaskCriticalCount is the max number of pending task in one queue
   585  	// before triggering queue slice splitting and unloading
   586  	QueuePendingTaskCriticalCount = "history.queuePendingTaskCriticalCount"
   587  	// QueueReaderStuckCriticalAttempts is the max number of task loading attempts for a certain task range
   588  	// before that task range is split into a separate slice to unblock loading for later range.
   589  	// currently only work for scheduled queues and the task range is 1s.
   590  	QueueReaderStuckCriticalAttempts = "history.queueReaderStuckCriticalAttempts"
   591  	// QueueCriticalSlicesCount is the max number of slices in one queue
   592  	// before force compacting slices
   593  	QueueCriticalSlicesCount = "history.queueCriticalSlicesCount"
   594  	// QueuePendingTaskMaxCount is the max number of task pending tasks in one queue before stop
   595  	// loading new tasks into memory. While QueuePendingTaskCriticalCount won't stop task loading
   596  	// for the entire queue but only trigger a queue action to unload tasks. Ideally this max count
   597  	// limit should not be hit and task unloading should happen once critical count is exceeded. But
   598  	// since queue action is async, we need this hard limit.
   599  	QueuePendingTaskMaxCount = "history.queuePendingTasksMaxCount"
   600  	// QueueMaxReaderCount is the max number of readers in one multi-cursor queue
   601  	QueueMaxReaderCount = "history.queueMaxReaderCount"
   602  	// ContinueAsNewMinInterval is the minimal interval between continue_as_new executions.
   603  	// This is needed to prevent tight loop continue_as_new spin. Default is 1s.
   604  	ContinueAsNewMinInterval = "history.continueAsNewMinInterval"
   605  
   606  	// TaskSchedulerEnableRateLimiter indicates if task scheduler rate limiter should be enabled
   607  	TaskSchedulerEnableRateLimiter = "history.taskSchedulerEnableRateLimiter"
   608  	// TaskSchedulerEnableRateLimiterShadowMode indicates if task scheduler rate limiter should run in shadow mode
   609  	// i.e. through rate limiter and emit metrics but do not actually block/throttle task scheduling
   610  	TaskSchedulerEnableRateLimiterShadowMode = "history.taskSchedulerEnableRateLimiterShadowMode"
   611  	// TaskSchedulerRateLimiterStartupDelay is the duration to wait after startup before enforcing task scheduler rate limiting
   612  	TaskSchedulerRateLimiterStartupDelay = "history.taskSchedulerRateLimiterStartupDelay"
   613  	// TaskSchedulerGlobalMaxQPS is the max qps all task schedulers in the cluster can schedule tasks
   614  	// If value less or equal to 0, will fall back to TaskSchedulerMaxQPS
   615  	TaskSchedulerGlobalMaxQPS = "history.taskSchedulerGlobalMaxQPS"
   616  	// TaskSchedulerMaxQPS is the max qps task schedulers on a host can schedule tasks
   617  	// If value less or equal to 0, will fall back to HistoryPersistenceMaxQPS
   618  	TaskSchedulerMaxQPS = "history.taskSchedulerMaxQPS"
   619  	// TaskSchedulerGlobalNamespaceMaxQPS is the max qps all task schedulers in the cluster can schedule tasks for a certain namespace
   620  	// If value less or equal to 0, will fall back to TaskSchedulerNamespaceMaxQPS
   621  	TaskSchedulerGlobalNamespaceMaxQPS = "history.taskSchedulerGlobalNamespaceMaxQPS"
   622  	// TaskSchedulerNamespaceMaxQPS is the max qps task schedulers on a host can schedule tasks for a certain namespace
   623  	// If value less or equal to 0, will fall back to HistoryPersistenceNamespaceMaxQPS
   624  	TaskSchedulerNamespaceMaxQPS = "history.taskSchedulerNamespaceMaxQPS"
   625  
   626  	// TimerTaskBatchSize is batch size for timer processor to process tasks
   627  	TimerTaskBatchSize = "history.timerTaskBatchSize"
   628  	// TimerProcessorSchedulerWorkerCount is the number of workers in the host level task scheduler for timer processor
   629  	TimerProcessorSchedulerWorkerCount = "history.timerProcessorSchedulerWorkerCount"
   630  	// TimerProcessorSchedulerActiveRoundRobinWeights is the priority round robin weights used by timer task scheduler for active namespaces
   631  	TimerProcessorSchedulerActiveRoundRobinWeights = "history.timerProcessorSchedulerActiveRoundRobinWeights"
   632  	// TimerProcessorSchedulerStandbyRoundRobinWeights is the priority round robin weights used by timer task scheduler for standby namespaces
   633  	TimerProcessorSchedulerStandbyRoundRobinWeights = "history.timerProcessorSchedulerStandbyRoundRobinWeights"
   634  	// TimerProcessorUpdateAckInterval is update interval for timer processor
   635  	TimerProcessorUpdateAckInterval = "history.timerProcessorUpdateAckInterval"
   636  	// TimerProcessorUpdateAckIntervalJitterCoefficient is the update interval jitter coefficient
   637  	TimerProcessorUpdateAckIntervalJitterCoefficient = "history.timerProcessorUpdateAckIntervalJitterCoefficient"
   638  	// TimerProcessorCompleteTimerInterval is complete timer interval for timer processor
   639  	TimerProcessorCompleteTimerInterval = "history.timerProcessorCompleteTimerInterval"
   640  	// TimerProcessorFailoverMaxPollRPS is max poll rate per second for timer processor
   641  	TimerProcessorFailoverMaxPollRPS = "history.timerProcessorFailoverMaxPollRPS"
   642  	// TimerProcessorMaxPollRPS is max poll rate per second for timer processor
   643  	TimerProcessorMaxPollRPS = "history.timerProcessorMaxPollRPS"
   644  	// TimerProcessorMaxPollHostRPS is max poll rate per second for all timer processor on a host
   645  	TimerProcessorMaxPollHostRPS = "history.timerProcessorMaxPollHostRPS"
   646  	// TimerProcessorMaxPollInterval is max poll interval for timer processor
   647  	TimerProcessorMaxPollInterval = "history.timerProcessorMaxPollInterval"
   648  	// TimerProcessorMaxPollIntervalJitterCoefficient is the max poll interval jitter coefficient
   649  	TimerProcessorMaxPollIntervalJitterCoefficient = "history.timerProcessorMaxPollIntervalJitterCoefficient"
   650  	// TimerProcessorPollBackoffInterval is the poll backoff interval if task redispatcher's size exceeds limit for timer processor
   651  	TimerProcessorPollBackoffInterval = "history.timerProcessorPollBackoffInterval"
   652  	// TimerProcessorMaxTimeShift is the max shift timer processor can have
   653  	TimerProcessorMaxTimeShift = "history.timerProcessorMaxTimeShift"
   654  	// RetentionTimerJitterDuration is a time duration jitter to distribute timer from T0 to T0 + jitter duration
   655  	RetentionTimerJitterDuration = "history.retentionTimerJitterDuration"
   656  
   657  	// MemoryTimerProcessorSchedulerWorkerCount is the number of workers in the task scheduler for in memory timer processor.
   658  	MemoryTimerProcessorSchedulerWorkerCount = "history.memoryTimerProcessorSchedulerWorkerCount"
   659  
   660  	// TransferTaskBatchSize is batch size for transferQueueProcessor
   661  	TransferTaskBatchSize = "history.transferTaskBatchSize"
   662  	// TransferProcessorFailoverMaxPollRPS is max poll rate per second for transferQueueProcessor
   663  	TransferProcessorFailoverMaxPollRPS = "history.transferProcessorFailoverMaxPollRPS"
   664  	// TransferProcessorMaxPollRPS is max poll rate per second for transferQueueProcessor
   665  	TransferProcessorMaxPollRPS = "history.transferProcessorMaxPollRPS"
   666  	// TransferProcessorMaxPollHostRPS is max poll rate per second for all transferQueueProcessor on a host
   667  	TransferProcessorMaxPollHostRPS = "history.transferProcessorMaxPollHostRPS"
   668  	// TransferProcessorSchedulerWorkerCount is the number of workers in the host level task scheduler for transferQueueProcessor
   669  	TransferProcessorSchedulerWorkerCount = "history.transferProcessorSchedulerWorkerCount"
   670  	// TransferProcessorSchedulerActiveRoundRobinWeights is the priority round robin weights used by transfer task scheduler for active namespaces
   671  	TransferProcessorSchedulerActiveRoundRobinWeights = "history.transferProcessorSchedulerActiveRoundRobinWeights"
   672  	// TransferProcessorSchedulerStandbyRoundRobinWeights is the priority round robin weights used by transfer task scheduler for standby namespaces
   673  	TransferProcessorSchedulerStandbyRoundRobinWeights = "history.transferProcessorSchedulerStandbyRoundRobinWeights"
   674  	// TransferProcessorUpdateShardTaskCount is update shard count for transferQueueProcessor
   675  	TransferProcessorUpdateShardTaskCount = "history.transferProcessorUpdateShardTaskCount"
   676  	// TransferProcessorMaxPollInterval max poll interval for transferQueueProcessor
   677  	TransferProcessorMaxPollInterval = "history.transferProcessorMaxPollInterval"
   678  	// TransferProcessorMaxPollIntervalJitterCoefficient is the max poll interval jitter coefficient
   679  	TransferProcessorMaxPollIntervalJitterCoefficient = "history.transferProcessorMaxPollIntervalJitterCoefficient"
   680  	// TransferProcessorUpdateAckInterval is update interval for transferQueueProcessor
   681  	TransferProcessorUpdateAckInterval = "history.transferProcessorUpdateAckInterval"
   682  	// TransferProcessorUpdateAckIntervalJitterCoefficient is the update interval jitter coefficient
   683  	TransferProcessorUpdateAckIntervalJitterCoefficient = "history.transferProcessorUpdateAckIntervalJitterCoefficient"
   684  	// TransferProcessorCompleteTransferInterval is complete timer interval for transferQueueProcessor
   685  	TransferProcessorCompleteTransferInterval = "history.transferProcessorCompleteTransferInterval"
   686  	// TransferProcessorPollBackoffInterval is the poll backoff interval if task redispatcher's size exceeds limit for transferQueueProcessor
   687  	TransferProcessorPollBackoffInterval = "history.transferProcessorPollBackoffInterval"
   688  	// TransferProcessorEnsureCloseBeforeDelete means we ensure the execution is closed before we delete it
   689  	TransferProcessorEnsureCloseBeforeDelete = "history.transferProcessorEnsureCloseBeforeDelete"
   690  
   691  	// VisibilityTaskBatchSize is batch size for visibilityQueueProcessor
   692  	VisibilityTaskBatchSize = "history.visibilityTaskBatchSize"
   693  	// VisibilityProcessorMaxPollRPS is max poll rate per second for visibilityQueueProcessor
   694  	VisibilityProcessorMaxPollRPS = "history.visibilityProcessorMaxPollRPS"
   695  	// VisibilityProcessorMaxPollHostRPS is max poll rate per second for all visibilityQueueProcessor on a host
   696  	VisibilityProcessorMaxPollHostRPS = "history.visibilityProcessorMaxPollHostRPS"
   697  	// VisibilityProcessorSchedulerWorkerCount is the number of workers in the host level task scheduler for visibilityQueueProcessor
   698  	VisibilityProcessorSchedulerWorkerCount = "history.visibilityProcessorSchedulerWorkerCount"
   699  	// VisibilityProcessorSchedulerActiveRoundRobinWeights is the priority round robin weights by visibility task scheduler for active namespaces
   700  	VisibilityProcessorSchedulerActiveRoundRobinWeights = "history.visibilityProcessorSchedulerActiveRoundRobinWeights"
   701  	// VisibilityProcessorSchedulerStandbyRoundRobinWeights is the priority round robin weights by visibility task scheduler for standby namespaces
   702  	VisibilityProcessorSchedulerStandbyRoundRobinWeights = "history.visibilityProcessorSchedulerStandbyRoundRobinWeights"
   703  	// VisibilityProcessorMaxPollInterval max poll interval for visibilityQueueProcessor
   704  	VisibilityProcessorMaxPollInterval = "history.visibilityProcessorMaxPollInterval"
   705  	// VisibilityProcessorMaxPollIntervalJitterCoefficient is the max poll interval jitter coefficient
   706  	VisibilityProcessorMaxPollIntervalJitterCoefficient = "history.visibilityProcessorMaxPollIntervalJitterCoefficient"
   707  	// VisibilityProcessorUpdateAckInterval is update interval for visibilityQueueProcessor
   708  	VisibilityProcessorUpdateAckInterval = "history.visibilityProcessorUpdateAckInterval"
   709  	// VisibilityProcessorUpdateAckIntervalJitterCoefficient is the update interval jitter coefficient
   710  	VisibilityProcessorUpdateAckIntervalJitterCoefficient = "history.visibilityProcessorUpdateAckIntervalJitterCoefficient"
   711  	// VisibilityProcessorCompleteTaskInterval is complete timer interval for visibilityQueueProcessor
   712  	VisibilityProcessorCompleteTaskInterval = "history.visibilityProcessorCompleteTaskInterval"
   713  	// VisibilityProcessorPollBackoffInterval is the poll backoff interval if task redispatcher's size exceeds limit for visibilityQueueProcessor
   714  	VisibilityProcessorPollBackoffInterval = "history.visibilityProcessorPollBackoffInterval"
   715  	// VisibilityProcessorEnsureCloseBeforeDelete means we ensure the visibility of an execution is closed before we delete its visibility records
   716  	VisibilityProcessorEnsureCloseBeforeDelete = "history.visibilityProcessorEnsureCloseBeforeDelete"
   717  	// VisibilityProcessorEnableCloseWorkflowCleanup to clean up the mutable state after visibility
   718  	// close task has been processed. Must use Elasticsearch as visibility store, otherwise workflow
   719  	// data (eg: search attributes) will be lost after workflow is closed.
   720  	VisibilityProcessorEnableCloseWorkflowCleanup = "history.visibilityProcessorEnableCloseWorkflowCleanup"
   721  
   722  	// ArchivalTaskBatchSize is batch size for archivalQueueProcessor
   723  	ArchivalTaskBatchSize = "history.archivalTaskBatchSize"
   724  	// ArchivalProcessorMaxPollRPS is max poll rate per second for archivalQueueProcessor
   725  	ArchivalProcessorMaxPollRPS = "history.archivalProcessorMaxPollRPS"
   726  	// ArchivalProcessorMaxPollHostRPS is max poll rate per second for all archivalQueueProcessor on a host
   727  	ArchivalProcessorMaxPollHostRPS = "history.archivalProcessorMaxPollHostRPS"
   728  	// ArchivalProcessorSchedulerWorkerCount is the number of workers in the host level task scheduler for
   729  	// archivalQueueProcessor
   730  	ArchivalProcessorSchedulerWorkerCount = "history.archivalProcessorSchedulerWorkerCount"
   731  	// ArchivalProcessorMaxPollInterval max poll interval for archivalQueueProcessor
   732  	ArchivalProcessorMaxPollInterval = "history.archivalProcessorMaxPollInterval"
   733  	// ArchivalProcessorMaxPollIntervalJitterCoefficient is the max poll interval jitter coefficient
   734  	ArchivalProcessorMaxPollIntervalJitterCoefficient = "history.archivalProcessorMaxPollIntervalJitterCoefficient"
   735  	// ArchivalProcessorUpdateAckInterval is update interval for archivalQueueProcessor
   736  	ArchivalProcessorUpdateAckInterval = "history.archivalProcessorUpdateAckInterval"
   737  	// ArchivalProcessorUpdateAckIntervalJitterCoefficient is the update interval jitter coefficient
   738  	ArchivalProcessorUpdateAckIntervalJitterCoefficient = "history.archivalProcessorUpdateAckIntervalJitterCoefficient"
   739  	// ArchivalProcessorPollBackoffInterval is the poll backoff interval if task redispatcher's size exceeds limit for
   740  	// archivalQueueProcessor
   741  	ArchivalProcessorPollBackoffInterval = "history.archivalProcessorPollBackoffInterval"
   742  	// ArchivalProcessorArchiveDelay is the delay before archivalQueueProcessor starts to process archival tasks
   743  	ArchivalProcessorArchiveDelay = "history.archivalProcessorArchiveDelay"
   744  	// ArchivalBackendMaxRPS is the maximum rate of requests per second to the archival backend
   745  	ArchivalBackendMaxRPS = "history.archivalBackendMaxRPS"
   746  
   747  	// WorkflowExecutionMaxInFlightUpdates is the max number of updates that can be in-flight (admitted but not yet completed) for any given workflow execution.
   748  	WorkflowExecutionMaxInFlightUpdates = "history.maxInFlightUpdates"
   749  	// WorkflowExecutionMaxTotalUpdates is the max number of updates that any given workflow execution can receive.
   750  	WorkflowExecutionMaxTotalUpdates = "history.maxTotalUpdates"
   751  
   752  	// ReplicatorTaskBatchSize is batch size for ReplicatorProcessor
   753  	ReplicatorTaskBatchSize = "history.replicatorTaskBatchSize"
   754  	// ReplicatorMaxSkipTaskCount is maximum number of tasks that can be skipped during tasks pagination due to not meeting filtering conditions (e.g. missed namespace).
   755  	ReplicatorMaxSkipTaskCount = "history.replicatorMaxSkipTaskCount"
   756  	// ReplicatorTaskWorkerCount is number of worker for ReplicatorProcessor
   757  	ReplicatorTaskWorkerCount = "history.replicatorTaskWorkerCount"
   758  	// ReplicatorProcessorMaxPollRPS is max poll rate per second for ReplicatorProcessor
   759  	ReplicatorProcessorMaxPollRPS = "history.replicatorProcessorMaxPollRPS"
   760  	// ReplicatorProcessorMaxPollInterval is max poll interval for ReplicatorProcessor
   761  	ReplicatorProcessorMaxPollInterval = "history.replicatorProcessorMaxPollInterval"
   762  	// ReplicatorProcessorMaxPollIntervalJitterCoefficient is the max poll interval jitter coefficient
   763  	ReplicatorProcessorMaxPollIntervalJitterCoefficient = "history.replicatorProcessorMaxPollIntervalJitterCoefficient"
   764  	// ReplicatorProcessorUpdateAckInterval is update interval for ReplicatorProcessor
   765  	ReplicatorProcessorUpdateAckInterval = "history.replicatorProcessorUpdateAckInterval"
   766  	// ReplicatorProcessorUpdateAckIntervalJitterCoefficient is the update interval jitter coefficient
   767  	ReplicatorProcessorUpdateAckIntervalJitterCoefficient = "history.replicatorProcessorUpdateAckIntervalJitterCoefficient"
   768  	// ReplicatorProcessorEnablePriorityTaskProcessor indicates whether priority task processor should be used for ReplicatorProcessor
   769  	ReplicatorProcessorEnablePriorityTaskProcessor = "history.replicatorProcessorEnablePriorityTaskProcessor"
   770  	// MaximumBufferedEventsBatch is the maximum permissible number of buffered events for any given mutable state.
   771  	MaximumBufferedEventsBatch = "history.maximumBufferedEventsBatch"
   772  	// MaximumBufferedEventsSizeInBytes is the maximum permissible size of all buffered events for any given mutable
   773  	// state. The total size is determined by the sum of the size, in bytes, of each HistoryEvent proto.
   774  	MaximumBufferedEventsSizeInBytes = "history.maximumBufferedEventsSizeInBytes"
   775  	// MaximumSignalsPerExecution is max number of signals supported by single execution
   776  	MaximumSignalsPerExecution = "history.maximumSignalsPerExecution"
   777  	// ShardUpdateMinInterval is the minimal time interval which the shard info can be updated
   778  	ShardUpdateMinInterval = "history.shardUpdateMinInterval"
   779  	// ShardSyncMinInterval is the minimal time interval which the shard info should be sync to remote
   780  	ShardSyncMinInterval = "history.shardSyncMinInterval"
   781  	// EmitShardLagLog whether emit the shard lag log
   782  	EmitShardLagLog = "history.emitShardLagLog"
   783  	// DefaultEventEncoding is the encoding type for history events
   784  	DefaultEventEncoding = "history.defaultEventEncoding"
   785  	// DefaultActivityRetryPolicy represents the out-of-box retry policy for activities where
   786  	// the user has not specified an explicit RetryPolicy
   787  	DefaultActivityRetryPolicy = "history.defaultActivityRetryPolicy"
   788  	// DefaultWorkflowRetryPolicy represents the out-of-box retry policy for unset fields
   789  	// where the user has set an explicit RetryPolicy, but not specified all the fields
   790  	DefaultWorkflowRetryPolicy = "history.defaultWorkflowRetryPolicy"
   791  	// HistoryMaxAutoResetPoints is the key for max number of auto reset points stored in mutableState
   792  	HistoryMaxAutoResetPoints = "history.historyMaxAutoResetPoints"
   793  	// EnableParentClosePolicy whether to  ParentClosePolicy
   794  	EnableParentClosePolicy = "history.enableParentClosePolicy"
   795  	// ParentClosePolicyThreshold decides that parent close policy will be processed by sys workers(if enabled) if
   796  	// the number of children greater than or equal to this threshold
   797  	ParentClosePolicyThreshold = "history.parentClosePolicyThreshold"
   798  	// NumParentClosePolicySystemWorkflows is key for number of parentClosePolicy system workflows running in total
   799  	NumParentClosePolicySystemWorkflows = "history.numParentClosePolicySystemWorkflows"
   800  	// HistoryThrottledLogRPS is the rate limit on number of log messages emitted per second for throttled logger
   801  	HistoryThrottledLogRPS = "history.throttledLogRPS"
   802  	// StickyTTL is to expire a sticky taskqueue if no update more than this duration
   803  	StickyTTL = "history.stickyTTL"
   804  	// WorkflowTaskHeartbeatTimeout for workflow task heartbeat
   805  	WorkflowTaskHeartbeatTimeout = "history.workflowTaskHeartbeatTimeout"
   806  	// WorkflowTaskCriticalAttempts is the number of attempts for a workflow task that's regarded as critical
   807  	WorkflowTaskCriticalAttempts = "history.workflowTaskCriticalAttempt"
   808  	// WorkflowTaskRetryMaxInterval is the maximum interval added to a workflow task's startToClose timeout for slowing down retry
   809  	WorkflowTaskRetryMaxInterval = "history.workflowTaskRetryMaxInterval"
   810  	// DefaultWorkflowTaskTimeout for a workflow task
   811  	DefaultWorkflowTaskTimeout = "history.defaultWorkflowTaskTimeout"
   812  	// SkipReapplicationByNamespaceID is whether skipping a event re-application for a namespace
   813  	SkipReapplicationByNamespaceID = "history.SkipReapplicationByNamespaceID"
   814  	// StandbyTaskReReplicationContextTimeout is the context timeout for standby task re-replication
   815  	StandbyTaskReReplicationContextTimeout = "history.standbyTaskReReplicationContextTimeout"
   816  	// MaxBufferedQueryCount indicates max buffer query count
   817  	MaxBufferedQueryCount = "history.MaxBufferedQueryCount"
   818  	// MutableStateChecksumGenProbability is the probability [0-100] that checksum will be generated for mutable state
   819  	MutableStateChecksumGenProbability = "history.mutableStateChecksumGenProbability"
   820  	// MutableStateChecksumVerifyProbability is the probability [0-100] that checksum will be verified for mutable state
   821  	MutableStateChecksumVerifyProbability = "history.mutableStateChecksumVerifyProbability"
   822  	// MutableStateChecksumInvalidateBefore is the epoch timestamp before which all checksums are to be discarded
   823  	MutableStateChecksumInvalidateBefore = "history.mutableStateChecksumInvalidateBefore"
   824  
   825  	// ReplicationTaskFetcherParallelism determines how many go routines we spin up for fetching tasks
   826  	ReplicationTaskFetcherParallelism = "history.ReplicationTaskFetcherParallelism"
   827  	// ReplicationTaskFetcherAggregationInterval determines how frequently the fetch requests are sent
   828  	ReplicationTaskFetcherAggregationInterval = "history.ReplicationTaskFetcherAggregationInterval"
   829  	// ReplicationTaskFetcherTimerJitterCoefficient is the jitter for fetcher timer
   830  	ReplicationTaskFetcherTimerJitterCoefficient = "history.ReplicationTaskFetcherTimerJitterCoefficient"
   831  	// ReplicationTaskFetcherErrorRetryWait is the wait time when fetcher encounters error
   832  	ReplicationTaskFetcherErrorRetryWait = "history.ReplicationTaskFetcherErrorRetryWait"
   833  	// ReplicationTaskProcessorErrorRetryWait is the initial retry wait when we see errors in applying replication tasks
   834  	ReplicationTaskProcessorErrorRetryWait = "history.ReplicationTaskProcessorErrorRetryWait"
   835  	// ReplicationTaskProcessorErrorRetryBackoffCoefficient is the retry wait backoff time coefficient
   836  	ReplicationTaskProcessorErrorRetryBackoffCoefficient = "history.ReplicationTaskProcessorErrorRetryBackoffCoefficient"
   837  	// ReplicationTaskProcessorErrorRetryMaxInterval is the retry wait backoff max duration
   838  	ReplicationTaskProcessorErrorRetryMaxInterval = "history.ReplicationTaskProcessorErrorRetryMaxInterval"
   839  	// ReplicationTaskProcessorErrorRetryMaxAttempts is the max retry attempts for applying replication tasks
   840  	ReplicationTaskProcessorErrorRetryMaxAttempts = "history.ReplicationTaskProcessorErrorRetryMaxAttempts"
   841  	// ReplicationTaskProcessorErrorRetryExpiration is the max retry duration for applying replication tasks
   842  	ReplicationTaskProcessorErrorRetryExpiration = "history.ReplicationTaskProcessorErrorRetryExpiration"
   843  	// ReplicationTaskProcessorNoTaskInitialWait is the wait time when not ask is returned
   844  	ReplicationTaskProcessorNoTaskInitialWait = "history.ReplicationTaskProcessorNoTaskInitialWait"
   845  	// ReplicationTaskProcessorCleanupInterval determines how frequently the cleanup replication queue
   846  	ReplicationTaskProcessorCleanupInterval = "history.ReplicationTaskProcessorCleanupInterval"
   847  	// ReplicationTaskProcessorCleanupJitterCoefficient is the jitter for cleanup timer
   848  	ReplicationTaskProcessorCleanupJitterCoefficient = "history.ReplicationTaskProcessorCleanupJitterCoefficient"
   849  	// ReplicationTaskProcessorStartWait is the wait time before each task processing batch
   850  	ReplicationTaskProcessorStartWait = "history.ReplicationTaskProcessorStartWait"
   851  	// ReplicationTaskProcessorHostQPS is the qps of task processing rate limiter on host level
   852  	ReplicationTaskProcessorHostQPS = "history.ReplicationTaskProcessorHostQPS"
   853  	// ReplicationTaskProcessorShardQPS is the qps of task processing rate limiter on shard level
   854  	ReplicationTaskProcessorShardQPS = "history.ReplicationTaskProcessorShardQPS"
   855  	// ReplicationBypassCorruptedData is the flag to bypass corrupted workflow data in source cluster
   856  	ReplicationBypassCorruptedData = "history.ReplicationBypassCorruptedData"
   857  	// ReplicationEnableDLQMetrics is the flag to emit DLQ metrics
   858  	ReplicationEnableDLQMetrics = "history.ReplicationEnableDLQMetrics"
   859  	// HistoryTaskDLQEnabled enables the history task DLQ. This applies to internal tasks like transfer and timer tasks.
   860  	// Do not turn this on if you aren't using Cassandra as the history task DLQ is not implemented for other databases.
   861  	HistoryTaskDLQEnabled = "history.TaskDLQEnabled"
   862  	// HistoryTaskDLQUnexpectedErrorAttempts is the number of task execution attempts before sending the task to DLQ.
   863  	HistoryTaskDLQUnexpectedErrorAttempts = "history.TaskDLQUnexpectedErrorAttempts"
   864  
   865  	// ReplicationStreamSyncStatusDuration sync replication status duration
   866  	ReplicationStreamSyncStatusDuration = "history.ReplicationStreamSyncStatusDuration"
   867  	// ReplicationStreamMinReconnectDuration minimal replication stream reconnection duration
   868  	ReplicationStreamMinReconnectDuration = "history.ReplicationStreamMinReconnectDuration"
   869  	// ReplicationProcessorSchedulerQueueSize is the replication task executor queue size
   870  	ReplicationProcessorSchedulerQueueSize = "history.ReplicationProcessorSchedulerQueueSize"
   871  	// ReplicationProcessorSchedulerWorkerCount is the replication task executor worker count
   872  	ReplicationProcessorSchedulerWorkerCount = "history.ReplicationProcessorSchedulerWorkerCount"
   873  	// EnableEagerNamespaceRefresher is a feature flag for eagerly refresh namespace during processing replication task
   874  	EnableEagerNamespaceRefresher = "history.EnableEagerNamespaceRefresher"
   875  	// EnableReplicationTaskBatching is a feature flag for batching replicate history event task
   876  	EnableReplicationTaskBatching = "history.EnableReplicationTaskBatching"
   877  
   878  	// keys for worker
   879  
   880  	// WorkerPersistenceMaxQPS is the max qps worker host can query DB
   881  	WorkerPersistenceMaxQPS = "worker.persistenceMaxQPS"
   882  	// WorkerPersistenceGlobalMaxQPS is the max qps worker cluster can query DB
   883  	WorkerPersistenceGlobalMaxQPS = "worker.persistenceGlobalMaxQPS"
   884  	// WorkerPersistenceNamespaceMaxQPS is the max qps each namespace on worker host can query DB
   885  	WorkerPersistenceNamespaceMaxQPS = "worker.persistenceNamespaceMaxQPS"
   886  	// WorkerPersistenceNamespaceMaxQPS is the max qps each namespace in worker cluster can query DB
   887  	WorkerPersistenceGlobalNamespaceMaxQPS = "worker.persistenceGlobalNamespaceMaxQPS"
   888  	// WorkerEnablePersistencePriorityRateLimiting indicates if priority rate limiting is enabled in worker persistence client
   889  	WorkerEnablePersistencePriorityRateLimiting = "worker.enablePersistencePriorityRateLimiting"
   890  	// WorkerPersistenceDynamicRateLimitingParams is a map that contains all adjustable dynamic rate limiting params
   891  	// see DefaultDynamicRateLimitingParams for available options and defaults
   892  	WorkerPersistenceDynamicRateLimitingParams = "worker.persistenceDynamicRateLimitingParams"
   893  	// WorkerIndexerConcurrency is the max concurrent messages to be processed at any given time
   894  	WorkerIndexerConcurrency = "worker.indexerConcurrency"
   895  	// WorkerESProcessorNumOfWorkers is num of workers for esProcessor
   896  	WorkerESProcessorNumOfWorkers = "worker.ESProcessorNumOfWorkers"
   897  	// WorkerESProcessorBulkActions is max number of requests in bulk for esProcessor
   898  	WorkerESProcessorBulkActions = "worker.ESProcessorBulkActions"
   899  	// WorkerESProcessorBulkSize is max total size of bulk in bytes for esProcessor
   900  	WorkerESProcessorBulkSize = "worker.ESProcessorBulkSize"
   901  	// WorkerESProcessorFlushInterval is flush interval for esProcessor
   902  	WorkerESProcessorFlushInterval = "worker.ESProcessorFlushInterval"
   903  	// WorkerESProcessorAckTimeout is the timeout that store will wait to get ack signal from ES processor.
   904  	// Should be at least WorkerESProcessorFlushInterval+<time to process request>.
   905  	WorkerESProcessorAckTimeout = "worker.ESProcessorAckTimeout"
   906  	// WorkerThrottledLogRPS is the rate limit on number of log messages emitted per second for throttled logger
   907  	WorkerThrottledLogRPS = "worker.throttledLogRPS"
   908  	// WorkerScannerMaxConcurrentActivityExecutionSize indicates worker scanner max concurrent activity execution size
   909  	WorkerScannerMaxConcurrentActivityExecutionSize = "worker.ScannerMaxConcurrentActivityExecutionSize"
   910  	// WorkerScannerMaxConcurrentWorkflowTaskExecutionSize indicates worker scanner max concurrent workflow execution size
   911  	WorkerScannerMaxConcurrentWorkflowTaskExecutionSize = "worker.ScannerMaxConcurrentWorkflowTaskExecutionSize"
   912  	// WorkerScannerMaxConcurrentActivityTaskPollers indicates worker scanner max concurrent activity pollers
   913  	WorkerScannerMaxConcurrentActivityTaskPollers = "worker.ScannerMaxConcurrentActivityTaskPollers"
   914  	// WorkerScannerMaxConcurrentWorkflowTaskPollers indicates worker scanner max concurrent workflow pollers
   915  	WorkerScannerMaxConcurrentWorkflowTaskPollers = "worker.ScannerMaxConcurrentWorkflowTaskPollers"
   916  	// ScannerPersistenceMaxQPS is the maximum rate of persistence calls from worker.Scanner
   917  	ScannerPersistenceMaxQPS = "worker.scannerPersistenceMaxQPS"
   918  	// ExecutionScannerPerHostQPS is the maximum rate of calls per host from executions.Scanner
   919  	ExecutionScannerPerHostQPS = "worker.executionScannerPerHostQPS"
   920  	// ExecutionScannerPerShardQPS is the maximum rate of calls per shard from executions.Scanner
   921  	ExecutionScannerPerShardQPS = "worker.executionScannerPerShardQPS"
   922  	// ExecutionDataDurationBuffer is the data TTL duration buffer of execution data
   923  	ExecutionDataDurationBuffer = "worker.executionDataDurationBuffer"
   924  	// ExecutionScannerWorkerCount is the execution scavenger worker count
   925  	ExecutionScannerWorkerCount = "worker.executionScannerWorkerCount"
   926  	// ExecutionScannerHistoryEventIdValidator is the flag to enable history event id validator
   927  	ExecutionScannerHistoryEventIdValidator = "worker.executionEnableHistoryEventIdValidator"
   928  	// TaskQueueScannerEnabled indicates if task queue scanner should be started as part of worker.Scanner
   929  	TaskQueueScannerEnabled = "worker.taskQueueScannerEnabled"
   930  	// BuildIdScavengerEnabled indicates if the build id scavenger should be started as part of worker.Scanner
   931  	BuildIdScavengerEnabled = "worker.buildIdScavengerEnabled"
   932  	// HistoryScannerEnabled indicates if history scanner should be started as part of worker.Scanner
   933  	HistoryScannerEnabled = "worker.historyScannerEnabled"
   934  	// ExecutionsScannerEnabled indicates if executions scanner should be started as part of worker.Scanner
   935  	ExecutionsScannerEnabled = "worker.executionsScannerEnabled"
   936  	// HistoryScannerDataMinAge indicates the history scanner cleanup minimum age.
   937  	HistoryScannerDataMinAge = "worker.historyScannerDataMinAge"
   938  	// HistoryScannerVerifyRetention indicates the history scanner verify data retention.
   939  	// If the service configures with archival feature enabled, update worker.historyScannerVerifyRetention to be double of the data retention.
   940  	HistoryScannerVerifyRetention = "worker.historyScannerVerifyRetention"
   941  	// EnableBatcher decides whether start batcher in our worker
   942  	EnableBatcher = "worker.enableBatcher"
   943  	// BatcherRPS controls number the rps of batch operations
   944  	BatcherRPS = "worker.batcherRPS"
   945  	// BatcherConcurrency controls the concurrency of one batch operation
   946  	BatcherConcurrency = "worker.batcherConcurrency"
   947  	// WorkerParentCloseMaxConcurrentActivityExecutionSize indicates worker parent close worker max concurrent activity execution size
   948  	WorkerParentCloseMaxConcurrentActivityExecutionSize = "worker.ParentCloseMaxConcurrentActivityExecutionSize"
   949  	// WorkerParentCloseMaxConcurrentWorkflowTaskExecutionSize indicates worker parent close worker max concurrent workflow execution size
   950  	WorkerParentCloseMaxConcurrentWorkflowTaskExecutionSize = "worker.ParentCloseMaxConcurrentWorkflowTaskExecutionSize"
   951  	// WorkerParentCloseMaxConcurrentActivityTaskPollers indicates worker parent close worker max concurrent activity pollers
   952  	WorkerParentCloseMaxConcurrentActivityTaskPollers = "worker.ParentCloseMaxConcurrentActivityTaskPollers"
   953  	// WorkerParentCloseMaxConcurrentWorkflowTaskPollers indicates worker parent close worker max concurrent workflow pollers
   954  	WorkerParentCloseMaxConcurrentWorkflowTaskPollers = "worker.ParentCloseMaxConcurrentWorkflowTaskPollers"
   955  	// WorkerPerNamespaceWorkerCount controls number of per-ns (scheduler, batcher, etc.) workers to run per namespace
   956  	WorkerPerNamespaceWorkerCount = "worker.perNamespaceWorkerCount"
   957  	// WorkerPerNamespaceWorkerOptions are SDK worker options for per-namespace worker
   958  	WorkerPerNamespaceWorkerOptions = "worker.perNamespaceWorkerOptions"
   959  	// WorkerEnableScheduler controls whether to start the worker for scheduled workflows
   960  	WorkerEnableScheduler = "worker.enableScheduler"
   961  	// WorkerStickyCacheSize controls the sticky cache size for SDK workers on worker nodes
   962  	// (shared between all workers in the process, cannot be changed after startup)
   963  	WorkerStickyCacheSize = "worker.stickyCacheSize"
   964  	// SchedulerNamespaceStartWorkflowRPS is the per-namespace limit for starting workflows by schedules
   965  	SchedulerNamespaceStartWorkflowRPS = "worker.schedulerNamespaceStartWorkflowRPS"
   966  	// WorkerDeleteNamespaceActivityLimitsConfig is a map that contains a copy of relevant sdkworker.Options
   967  	// settings for controlling remote activity concurrency for delete namespace workflows.
   968  	WorkerDeleteNamespaceActivityLimitsConfig = "worker.deleteNamespaceActivityLimitsConfig"
   969  )