Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Scala] proposol a new capability mode for maintain core data strucutre in the server #1685

Open
LoranceChen opened this issue Jun 12, 2024 · 0 comments
Labels
enhancement New feature or request

Comments

@LoranceChen
Copy link

LoranceChen commented Jun 12, 2024

[Background]
For safe maintain core persistence data compatible are the most consider things in server-side.
In many server-side project, only add new field in every new release version and carefully delete existing field is a good practice usually.

Our COMPATIBLE mode are not check for delete field. There are difficult check safty when release new version.

[Advice]
Add a new CompatibleMode only allow add new field and explicitly give a register process allow ignore field. Such as:

case class Foo(a: Int, b: String, c: Long)

val fury = Fury.builder()..withCompatibleMode(CompatibleMode.ALLOW_NEW_FIELD).build()
fury.registerDeletableField("Foo.c") // which means Foo.c bytes data can ignored when doing deserilaize process.

This can give a great help to check new release version are safe on data structure level.

@LoranceChen LoranceChen added the enhancement New feature or request label Jun 12, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant