Skip to content

Omit redundant Dex flow type headers - #2

Merged
longquanzheng merged 1 commit into
mainfrom
codex/omit-redundant-flow-type-header
Sep 18, 2026
Merged

longquanzheng merged 1 commit into
mainfrom
codex/omit-redundant-flow-type-header

Conversation

@longquanzheng

Copy link
Copy Markdown

Summary

  • omit the inherited Dex flow type header when an activity has a FlowTypeProvider
  • treat the activity provider as authoritative and normalize empty values to none
  • retain inherited headers for subflow and system activities without a flow type provider
  • verify the persisted activity history and metrics behavior

Rationale

Step and RPC activity inputs already contain their flow type. Persisting the same value in __temporal_sdk_dex_flow_type adds redundant bytes to every scheduled activity event.

User impact

New histories omit the private header for activities with a flow type provider. Existing histories and activities without a provider remain compatible. Metric names and non-empty labels are unchanged.

Validation

  • go run . check
  • go run . unit-test -run 'TestDex'
  • go test -count 1 -race ./replaytests -run 'TestReplayTestSuite/TestReplayLegacyActivityHeaderWithDexFlowTypeProvider'
  • SERVICE_ADDR=127.0.0.1:7233 SERVICE_HTTP_ADDR=127.0.0.1:7243 go run . integration-test -run 'TestIntegrationSuite/TestDex'
  • SERVICE_ADDR=127.0.0.1:7233 SERVICE_HTTP_ADDR=127.0.0.1:7243 WORKFLOW_CACHE_SIZE=0 go run . integration-test -run 'TestIntegrationSuite/TestDex'

@longquanzheng
longquanzheng marked this pull request as ready for review September 18, 2026 17:29
@longquanzheng
longquanzheng merged commit e83dfb8 into main Sep 18, 2026
21 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant