-
Notifications
You must be signed in to change notification settings - Fork 374
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
Proposal: Implementing Versioning Across Application Serialization Structures #1838
Comments
Future Versioning Strategy ProposalDescriptionAfter attempting to add a VERSION field to various public interfaces, I realized this approach was making the code less readable and generally worse without any real benefit. I propose we consider versioning only after V1, leaving V1 as it is at the final release. ProposalTo handle versioning in future major versions, we need to consider the following aspects: RPC APIs: Version Through Path, Not by
|
Summarizing the final decision for versioning: YOLO
|
Summary
We propose implementing versioning across various serialization structures within our application to enhance compatibility, maintainability, and future scalability. This entails versioning in three key areas:
Versioning RPC API:
Implementing versioning in RPC API endpoints by prefixing paths with version numbers (e.g., /api/v1, /api/v2) ensures backward compatibility while allowing for iterative updates and enhancements. This practice enables seamless transitions for clients using different versions of the API and facilitates the graceful evolution of the API over time.
Versioning Data Storage Format:
Introducing versioning to the storage format of our application's data enables smooth migrations when format changes occur. By incorporating version numbers into the data storage mechanism, we ensure that data remains accessible and usable across different versions of the application. This practice is essential for maintaining data integrity and ensuring uninterrupted operation during updates or migrations.
Versioning Data Structures for Inter-Node Communication:
Versioning complex data structures transmitted between nodes enhances interoperability and compatibility across distributed systems. By versioning these data structures, we can accommodate changes and updates without causing disruptions to the communication protocol.
Additional considerations
The text was updated successfully, but these errors were encountered: