## APIs - Temporal Workflow (Removed this to keep it simple) - Temporal Activity - Function signature must be func(ctx, input) (output, error) - Temporal-less wraps it into func(ctx, input) (<-chan output) - Activity internally can have child-activities ## Storage layer - Should use #1 - Store input/output, trace-ids (can naively override last successful one) ## Retry - Refer to temporal ## Replay - Context manager should - determine if this is 1st time - Yes -> do nothing, proceed usually - No -> try to get from storage, if there's data -> return naively, else execute activity ## Code generation - Bufbuild, refer above function signature
APIs
Storage layer
Retry
Replay
Code generation