[ https://issues.apache.org/jira/browse/THRIFT-5340?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17270045#comment-17270045 ]
Jens Geyer commented on THRIFT-5340: ------------------------------------ {quote} > A schema can evolve as needed and - following a few simple rules - still be > held compatible with earlier versions of that schema. Exactly. I was trying to find a list of such simple rules. But I couldn't find them anywhere (maybe I didn't look in the right place?) {quote} https://diwakergupta.github.io/thrift-missing-guide/ is a good read. The "executive summary" re your topic is: * Field numbers are fix (with regard to the surrounding structure/method call) and may not be changed nor re-used. * If a field changes its type, its a different field then. Readers will skip what they don't know/understand or when an unexpected type comes along. * Think twice about making a field "required", because it is forever * Service methods are identified by name, not numbers. This is the only place where a name is important {quote} For example, I'm creating a schema that defines a list of a scalar type. Then, I transform the schema that has a list of a structure where the scalar is the first and only element. I then encode data with the old schema and attempt to decode it with the new schema, and viceversa, to determine if the schema transformation is forwards, backwards, or fully compatible. {quote} That's a different type then. Will not work. > Document schema evolution features > ---------------------------------- > > Key: THRIFT-5340 > URL: https://issues.apache.org/jira/browse/THRIFT-5340 > Project: Thrift > Issue Type: Improvement > Components: Documentation > Reporter: Juan Cruz Viotti > Priority: Minor > Original Estimate: 24h > Remaining Estimate: 24h > > I could not find a section in the documentation outlining the schema > evolution/versioning features that Thrift provides. > In case there is none, I volunteer to write the first draft, as I've been > writing a paper involving Apache Thrift as part of my MSc at University of > Oxford, and ran plenty of schema evolution experiments. > Please let me know your thoughts and where would this section fit! > > -- This message was sent by Atlassian Jira (v8.3.4#803005)