You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository was archived by the owner on Nov 16, 2023. It is now read-only.
Currently, reactive machine services are effectively "deploy-once" - every time we redeploy we have to restart the service and delete all state. This severely limits the applicability of the programming model and defeats the purpose of our programming constructs. For example, it hardly makes sense to store application state within the service if that state cannot be maintained between code updates.
Therefore, we urgently need some support for updating code, even if rudimentary.
I have started thinking about an early solution to this based on the idea of "immutable code": orchestrations, events, activities, state, and operations cannot be changed, but new ones can be added.
And newly added orchestrations, activities, states, and operations can be annotated as replacements of old ones, which means running code can migrate to the newer versions without interruption.
This means the code is "semantically cumulative", i.e. it strictly grows over time, and all past versions of the code are included in the latest version.
I am starting a new work-in-progress PR that has a preliminary syntax proposition for this feature.