Skip to content
This repository was archived by the owner on Nov 16, 2023. It is now read-only.
This repository was archived by the owner on Nov 16, 2023. It is now read-only.

Support for code updates #6

@sebastianburckhardt

Description

@sebastianburckhardt

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions