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.
This PR completes the persistent variables story where the engine will persist variables only if they are configured with a storage driver.
Before this PR, the entire memory register was serialized as part of the workflow instance, which is problematic for values that are supposed to have a transient lifetime (eg. streams, large data and non-serializable objects).
After this PR, none of the contents of the register is persisted. In order to persist a value, one needs to use a Variable AND configure it with a storage driver.
Currently, only two such driver types exist:
The Memory driver stores values in a local dictionary and lives for as long as the application does.
The Workflow driver stores the variable inside of the workflow instance document itself. This means that the variable value must be serializable.
Future drivers may include Redis, Blob storage, Disk storage, etc.