Skip to content

[don't merge] Time-skipping POC for CHASM with SAA#10799

Open
feiyang3cat wants to merge 1 commit into
temporalio:mainfrom
feiyang3cat:ts-chasm-framework
Open

[don't merge] Time-skipping POC for CHASM with SAA#10799
feiyang3cat wants to merge 1 commit into
temporalio:mainfrom
feiyang3cat:ts-chasm-framework

Conversation

@feiyang3cat

@feiyang3cat feiyang3cat commented Jun 22, 2026

Copy link
Copy Markdown
Contributor

for discussion only
feature API branch: temporalio/api#802

@feiyang3cat feiyang3cat requested review from a team as code owners June 22, 2026 02:53
@feiyang3cat feiyang3cat changed the title [don't merge] time-skipping POC for CHASM with SAA [don't merge] Time-skipping POC for CHASM with SAA Jun 22, 2026
@@ -124,6 +124,53 @@ func (a *Activity) LifecycleState(_ chasm.Context) chasm.LifecycleState {
}
}

@feiyang3cat feiyang3cat Jun 22, 2026

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

not covered yet:

  1. reset of activity (?
  2. callback retry backoff skips after activity/wf's completion

@@ -95,6 +95,10 @@ func (h *handler) StartActivityExecution(ctx context.Context, req *activitypb.St
}
}

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

add feature flag check?

Comment thread chasm/timeskippping.go
commonpb "go.temporal.io/api/common/v1"
persistencespb "go.temporal.io/server/api/persistence/v1"
)

@feiyang3cat feiyang3cat Jun 22, 2026

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

current design principles for each layer:

  1. history substrate: time skipping states (eg. config, virtual time adaptions) are all owned and controlled by history substrate (mainly thru mutable state) -> check the methods exposed by mutableState/NodeBackend

  2. chasm framework: provides interface to component users and embed interface implementations in the time-skipping flow inside closeTransaction -> all codes in this file

  3. component users: implement business impl -> check the changes in activity.go

_, err = mutableState.AddWorkflowExecutionTimeSkippingTransitionedEvent(
ctx, time.Time{}, true)
if err != nil {
// Disable time skipping through the archetype-aware sink: workflows record a history event; CHASM

@feiyang3cat feiyang3cat Jun 22, 2026

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

not related to this chasm-pr, but have detected a refinement point for the whole project here that this task is also a part of what offers by the history substrate and it only turns off the TS and doesn't need regeneration of timer tasks

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