REPL hot-reload for workers#88
Open
dotemacs wants to merge 2 commits into
Open
Conversation
Without this exclusion, this is the error that is shown every time temporal.workflow is loaded: WARNING: await already refers to: #'clojure.core/await in namespace: temporal.workflow, being replaced by: #'temporal.workflow/await Signed-off-by: Александар Симић <a@repl.ist>
Workers used to capture activity and workflow function values when they started, which meant re-evaluating a definition at the REPL had no effect until the worker was restarted. Also requested here: manetu#72 Add opt-in hot reload flags that keep dispatch entries linked to vars and resolve them when work is executed. This lets activity changes, and optionally workflow changes, be picked up by a running worker during development. Workflow hot reload remains explicit because workflow code changes can affect replay determinism. Signed-off-by: Александар Симић <a@repl.ist>
thenonameguy
approved these changes
May 13, 2026
thenonameguy
left a comment
There was a problem hiding this comment.
Great, this will make my life much better. Thanks Alex :)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Two things that make REPLing a bit nicer
1. Silences the clojure.core/await warning
The SDK only ever uses its own
temporal.workflow/await.2. Hot reload, this is the real change in this PR
Adds two opt-in flags that store dispatch entries as Vars and deref them at execution time instead:
Re-evaluate a defactivity and the running worker picks it up immediately. Workflow hot reload is available too but marked as dev-only since workflow changes can mess with replay determinism.
Also closes #72