[don't merge] Time-skipping POC for CHASM with SAA#10799
Conversation
| @@ -124,6 +124,53 @@ func (a *Activity) LifecycleState(_ chasm.Context) chasm.LifecycleState { | |||
| } | |||
| } | |||
There was a problem hiding this comment.
not covered yet:
- reset of activity (?
- callback retry backoff skips after activity/wf's completion
| @@ -95,6 +95,10 @@ func (h *handler) StartActivityExecution(ctx context.Context, req *activitypb.St | |||
| } | |||
| } | |||
|
|
|||
There was a problem hiding this comment.
add feature flag check?
| commonpb "go.temporal.io/api/common/v1" | ||
| persistencespb "go.temporal.io/server/api/persistence/v1" | ||
| ) | ||
|
|
There was a problem hiding this comment.
current design principles for each layer:
-
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 -
chasm framework: provides interface to component users and embed interface implementations in the time-skipping flow inside closeTransaction -> all codes in this file
-
component users: implement business impl -> check the changes in activity.go
d7a4c7d to
feec4da
Compare
| _, err = mutableState.AddWorkflowExecutionTimeSkippingTransitionedEvent( | ||
| ctx, time.Time{}, true) | ||
| if err != nil { | ||
| // Disable time skipping through the archetype-aware sink: workflows record a history event; CHASM |
There was a problem hiding this comment.
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
for discussion only
feature API branch: temporalio/api#802