You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@avro.apache.org by vassilis spiliopoulos <2b...@gmail.com> on 2019/01/30 09:58:08 UTC

Re: Avro union compatibility mode enhancement proposal

We are facing exactly the same forward compatibility issue for unions. What
is the status of this work? Is there a related jira?



--
Sent from: http://apache-avro.679487.n3.nabble.com/Avro-Developers-f679485.html

Re: Avro union compatibility mode enhancement proposal

Posted by vassilis spiliopoulos <2b...@gmail.com>.
I had the same thoughts as Yacine and I was surprised that adding a new union
type or a new enum value is not a forward compatible change (given that
there is a default value, e.g. null).

https://stackoverflow.com/questions/54439315/avro-union-forward-compatibility
<https://stackoverflow.com/questions/54439315/avro-union-forward-compatibility>  

I will probably go for option 3 as not skipping/ losing events is more
important to the project than decoupling microservices:

1. Handle exception in custom derserialiser and skip event (may lose
interesting events - For not losing events all consuming services must be
upgraded before all the producing services)

2. Convert all custom record unions to separate optional fields (may lose
interesting events, as change is forward compatible and consuming services
will not block)

3. Accept de-serialisation error/ block consumption and bump version in all
consuming services that use schema on new custom record type (this
guarantees that no interesting event is lost).




--
Sent from: http://apache-avro.679487.n3.nabble.com/Avro-Developers-f679485.html