[ 
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)

Reply via email to