Configurable storage versions#601
Open
rkistner wants to merge 3 commits intoincremental-processing-storagefrom
Open
Configurable storage versions#601rkistner wants to merge 3 commits intoincremental-processing-storagefrom
rkistner wants to merge 3 commits intoincremental-processing-storagefrom
Conversation
🦋 Changeset detectedLatest commit: 8046516 The changes in this PR will be included in the next version bump. This PR includes changesets to release 18 packages
Not sure what this means? Click here to learn what changesets are. Click here if you're a maintainer who wants to add another changeset to this PR |
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.
This adds
config.storage_version, which can currently be 2 or 3.For background, see:
In most cases, the storage version should not be configured explicitly - the latest stable version will be used automatically. This adds a
config.storage_versionproperty to cater for some specific cases:config.storage_version: 2in the sync config, wait for reprocessing to complete, then downgrade the service.Version strategy
Together with this, I propose a storage version strategy:
So right now we have version 2 as stable, and version 3 as unstable. Once all changes in version 3 has been finalized, we can stabilize the format as version 4, and remove support for version 3.
This strategy is not explicitly captured by the code yet - other than specifically marking version 2 as stable and 3 as unstable.
Version 1 is a special legacy case: This is used for all instances where the version was not defined. We support using storage version 1, but the user cannot configure sync config for version 1. We could consider doing the same for other deprecated storage versions in the future.
Implementation
The supported storage versions are now kinda duplicated between sync-rules and service-core packages. It does need to be available in sync-rules package, since we need to be able to validate the sync config without having access to service-core.
We could consider merging the service-core functionality into that.